{:from PyQt4 import QtGui} {:from library.Utils import forceString, forceInt, forceDouble, forceDate} {:db = QtGui.qApp.db} {: dial_stadia = dialogs.dialMultiList(u"Выберете стадию онкологического заболевания", [u"I", u'IA', u'IB', u'IC', u'II', u'IIA', u'IIB', u'IIC', u'III', u'IIIA', u'IIIB', u'IIIC', u'IV', u'IVA', u'IVB', u'IVC'], 1 )} {: dial_character = dialogs.dialList(u"Выберете характер заболевания", [u'-', u'острое', u'хроническое впервые установленое', u'хроническое известное', u'обострение хронического'], 2 )} {: dial_phase = dialogs.dialList(u"Выберете фазу заболевания", [u'-', u'обострение', u'ремиссия', u'рецидив', u'проградиентное течение', u'стабильное течение', u'острое состояние', u'стабилизация процесса', u'разрешение', u'остаточное явление', u'подозрение'], 10 )} {:begDate = (dialogs.dialDate(u"Введите дату начала периода").getVar()).date} {:endDate = (dialogs.dialDate(u"Введите дату окончания периода").getVar()).date} {: stadia = dial_stadia.getListValues()} {: character = dial_character.getListValue()} {: phase = dial_phase.getListValue()} {if: len(stadia) > 0} {:sqlStadia = u' AND ('} {for: n, s in enumerate(stadia)} {if: n == 0} {:sqlStadia = sqlStadia + u"rbTNMphase.code = '" + s + "' " + u" OR t2.code = '" + s + "' " } {else:} {:sqlStadia = sqlStadia + u" OR rbTNMphase.code = '" + s + "' " + u" OR t2.code = '" + s + "' "} {end:} {end:} {:sqlStadia = sqlStadia + u')'} {else:} {:sqlStadia = u''} {end:} {if: character != u'-'} {:sqlCharacter = u" AND rbDiseaseCharacter.name = '" + character + "' "}} {else:} {:sqlCharacter = ''} {end:} {if: phase != u'-'} {:sqlPhase = u" AND rbDiseasePhases.name = '" + phase + "' "} {else:} {:sqlPhase = ''} {end:} {:sqlDate = u" AND Event.setDate >= '" + begDate.toString("yyyy-MM-dd") + u"' AND Event.setDate < '"+endDate.toString("yyyy-MM-dd")+ "' "} {:sql1 = sqlDate + sqlStadia + sqlCharacter + sqlPhase + u' GROUP BY Client.id '} {:sql = u"SELECT Client.id, Client.lastName, Client.firstName, Client.patrName, Client.birthDate, Diagnostic.event_id, Diagnosis.MKB, Diagnostic.setDate, rbTNMphase.code as code1, t2.code as code2 FROM Diagnostic LEFT JOIN Diagnosis ON Diagnostic.diagnosis_id = Diagnosis.id LEFT JOIN Event ON Diagnostic.event_id = Event.id LEFT JOIN Client ON Event.client_id = Client.id INNER JOIN Account_Item ON Event.id = Account_Item.event_id LEFT JOIN rbTNMphase ON Diagnostic.cTNMphase_id = rbTNMphase.id LEFT JOIN rbTNMphase t2 ON Diagnostic.pTNMphase_id = t2.id LEFT JOIN rbDiseaseCharacter ON rbDiseaseCharacter.id=Diagnostic.character_id LEFT JOIN rbDiseasePhases ON rbDiseasePhases.id = Diagnostic.phase_id WHERE Account_Item.id IS NOT NULL AND (Diagnosis.MKB LIKE 'C%' OR Diagnosis.MKB LIKE 'D%') " + sql1 } {:query = db.query(sql)}

Отчет о пациентах с ЗНО

Период: {begDate.toString("dd.MM.yyyy")} - {endDate.toString("dd.MM.yyyy")}


Характер заболевания: {character}


Фаза заболевания: {phase}


Стадия TNM: {for: n, s in enumerate(stadia)} {if:len(stadia) - 1 != n } {s}, {else:}{s} {end:} {end:}



{for: i in range(0,query.size())} {:query.next()} {:record = query.record()} {end:}
ФИО пациента Дата рождения Код пациента Код карточки Диагноз по МКБ Дата установки
диагноза
Клинический
TNM
Патоморфологический
TNM
{i+1} {forceString(record.value(u'lastName'))} {forceString(record.value(u'firstName'))} {forceString(record.value(u'patrName'))} {forceDate(record.value(u'birthDate')).toString("dd.MM.yyyy")} {forceInt(record.value(u'id'))} {forceInt(record.value(u'event_id'))} {forceString(record.value(u'MKB'))} {forceDate(record.value(u'setDate')).toString("dd.MM.yyyy")} {forceString(record.value(u'code1'))} {forceString(record.value(u'code2'))}