Skip to content

Commit 5fb6894

Browse files
authored
Add I/T-ratio criterion to the HAP/Pneumonia definition (#87)
Add NEOIPC_HAP_IT_RATIO as its own clinical/laboratory criterion of the HAP program stage — a data element, program-rule variables (value + uint value), a value-true rule that assigns the uint value, and its term in the clinical-criteria total count — so the deployed Pneumonia definition counts at least 4 of 9 criteria, matching the protocol. Previously I/T ratio had no data element and was folded into the laboratory-findings boolean, which made the deployed definition stricter than the protocol (at least 4 of 8). Also document the CommonCommensal / resistance-category flag inheritance (down hierarchies, synonyms, and children unless explicitly overridden) and the structural virus classification in the infectious-agents directory README.
1 parent 1df67e6 commit 5fb6894

10 files changed

Lines changed: 23 additions & 4 deletions

File tree

metadata/common/dataElements.csv

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ boPV9RWoanT,NEOIPC_HAP_DOL,NeoIPC HAP Day of life,NeoIPC HAP DOL,Day of life,The
5454
UNYrrkrnjM4,NEOIPC_HAP_FEVER,NeoIPC HAP Fever,NeoIPC HAP Fever,Temperature abnormalities,Fever (> 38 °C) or hypothermia (< 36.5 °C) or temperature instability.,,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
5555
piqoBwxf7t8,NEOIPC_HAP_IMAGING_FINDINGS,NeoIPC HAP Imaging findings,NeoIPC HAP Imaging findings,Imaging findings,"At least one of the following imaging findings (imaging technologies: X-ray, CT, MRI, ultrasound) shows new changes suggestive of pneumonia, such as: infiltrate, shadowing, opacification, increased density, fluid in the intrapleural cavity or interlobar fissure.",,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
5656
cwtpTIICAQP,NEOIPC_HAP_INCREASED_RESPIRATORY_SECRETION,NeoIPC HAP Increased respiratory secretion,NeoIPC HAP Increased respiratory secretion,Increased respiratory secretion,More frequent endotrachel suctioning required.,,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
57-
h8FpJvGQDfJ,NEOIPC_HAP_LABORATORY_FINDINGS,NeoIPC HAP Laboratory findings,NeoIPC HAP Laboratory findings,Increased CRP/interleukin,There is at least one laboratory test result with a C-reactive protein (CRP) value of more than 20 mg/L (2 mg/dL) or an increased level of interleukin (IL) 6 or 8,,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
57+
h8FpJvGQDfJ,NEOIPC_HAP_LABORATORY_FINDINGS,NeoIPC HAP Laboratory findings,NeoIPC HAP Laboratory findings,Increased CRP/interleukin,There is at least one laboratory test result with a C-reactive protein (CRP) value of more than 10 mg/L (1 mg/dL) or an increased level of interleukin (IL) 6 or 8,,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
5858
f22ppOLUE5q,NEOIPC_HAP_LOS,NeoIPC HAP Length of Stay,NeoIPC HAP LOS,Day of occurrence after admission,The Length of Stay on which the pneumonia occurred. This field is calculated automatically.,,INTEGER_ZERO_OR_POSITIVE,TRACKER,DEFAULT,False,bjDvmb4bfuf,,,,,PUBLIC_RW
5959
Z2GhKrAdO2c,NEOIPC_HAP_MICROBIOLOGICAL_TEST_RESULT,NeoIPC HAP Microbiological test result,NeoIPC HAP Microbiological test result,Culture/non-culture based microbiologic testing,Availability of test results from a culture- or non-culture based microbiologic test from the respiratory tract specimen.,,INTEGER,TRACKER,NONE,False,bjDvmb4bfuf,TnE2yuSrqEP,,,,PUBLIC_RW
6060
bUNxV2zp4Lu,NEOIPC_HAP_PATHOGEN_1,NeoIPC HAP Organism 1,NeoIPC HAP Org. 1,Organism 1,The first organism detected in samples from the respiratory tract.,,INTEGER_ZERO_OR_POSITIVE,TRACKER,DEFAULT,True,bjDvmb4bfuf,KHMPRkX5a4r,,,,PUBLIC_RW
@@ -82,7 +82,7 @@ KGjHtWcPkP9,NEOIPC_HAP_PATHOGEN_3_NAME,NeoIPC HAP Organism 3 name,NeoIPC HAP Org
8282
YdP1whGQD3c,NEOIPC_HAP_PATHOGEN_3_SOURCE,NeoIPC HAP Organism 3 source,NeoIPC HAP Org. 3 source,- Source,The material the organism has been recovered from.,,INTEGER_POSITIVE,TRACKER,DEFAULT,False,bjDvmb4bfuf,Y64Emj9405U,,,,PUBLIC_RW
8383
NZqoT6ZGuX2,NEOIPC_HAP_PATHOGEN_3_VRE,NeoIPC HAP Organism 3 VRE,NeoIPC HAP Org. 3 VRE,- VRE,"The organism is a vancomycin-resistant Enterococcus(VRE). Select ""Yes"" if the isolate was tested for vancomycin resistance and the result was positive. Select ""No"" if it was tested and the result was negative. Select ""Not tested"" if no test for vancomycin resistance was performed.",,INTEGER,TRACKER,DEFAULT,True,bjDvmb4bfuf,TnE2yuSrqEP,,,,PUBLIC_RW
8484
s77aiscqcnx,NEOIPC_HAP_PURULENT_TRACHEAL_ASPIRATE,NeoIPC HAP Purulent tracheal aspirate,NeoIPC HAP Purulent tracheal aspirate,Purulent tracheal aspirate,Purulent tracheal aspirate,,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
85-
Ii1DSs7ZGbT,NEOIPC_HAP_RESPIRATORY_DISTRESS,NeoIPC HAP Respiratory distress,NeoIPC HAP Respiratory distress,Respiratory distress,"New or more frequent symptoms of respiratory distress (retractions, nasal flaring, grunting).",,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
85+
Ii1DSs7ZGbT,NEOIPC_HAP_RESPIRATORY_DISTRESS,NeoIPC HAP Respiratory distress,NeoIPC HAP Respiratory distress,Respiratory distress,"New or more frequent symptoms of respiratory distress (retractions, nasal flaring, grunting, chest indrawing).",,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
8686
sTrkGnTPDL2,NEOIPC_HAP_RESPIRATORY_SUPPORT,NeoIPC HAP Respiratory support,NeoIPC HAP Respiratory support,Beginning or increase in respiratory support,New initiation of respiratory support or escalation of existing level of respiratory support* for ≥ 2 days after at least two days of stability.,,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
8787
uvcHUgCtACj,NEOIPC_HAP_SECONDARY_BSI,NeoIPC HAP Secondary bloodstream infection,NeoIPC HAP Sec. BSI,Secondary bloodstream infection,"A BSI that is thought to be seeded from this hospital-acquired pneumonia. A BSI can be attributed to a site-specific infection (in this case the hospital-acquired pneumonia) if it occurs in a 17-day period that includes the day of infection (=first symptoms of site-specific infection), 3 days prior, and 13 days after.",,INTEGER,TRACKER,NONE,True,bjDvmb4bfuf,KfIEzWRibj7,,,,PUBLIC_RW
8888
ZpwYoMtJea3,NEOIPC_HAP_SEC_BSI_PATHOGEN_1,NeoIPC HAP Secondary BSI organism 1,NeoIPC HAP Sec. BSI org. 1,Organism 1,The first pathogen detected in a blood culture in a secondary sepsis.,,INTEGER_ZERO_OR_POSITIVE,TRACKER,DEFAULT,True,bjDvmb4bfuf,KHMPRkX5a4r,,,,PUBLIC_RW
@@ -252,3 +252,4 @@ Xn8q3giOGcB,NEOIPC_SURVEILLANCE_END_PATIENT_DAYS,NeoIPC Surveillance end Patient
252252
U4ys5n9dSRR,NEOIPC_SURVEILLANCE_END_PROBIOTIC_DAYS,NeoIPC Surveillance end Probiotic days,NeoIPC Surv. end PB days,Probiotic days,"The cumulative number of days the patient receives an oral probiotic containing at least one of Lactobacillus spp. or Bifidobacterium spp., regardless of the amount.",,INTEGER_ZERO_OR_POSITIVE,TRACKER,DEFAULT,True,bjDvmb4bfuf,,,,,PUBLIC_RW
253253
ZrBvuqbXY0I,NEOIPC_SURVEILLANCE_END_PVC_DAYS,NeoIPC Surveillance end PVC days,NeoIPC Surv. end PVC days,PVC days,The cumulative number of days when a peripheral venous catheter was in place for at least 12 hours/day.,,INTEGER_ZERO_OR_POSITIVE,TRACKER,DEFAULT,True,bjDvmb4bfuf,,,,,PUBLIC_RW
254254
wxIOvNRgLIE,NEOIPC_SURVEILLANCE_END_REASON,NeoIPC Surveillance end Reason,NeoIPC Surv. end Reason,Reason,Reason for the end of surveillance. This can be either death or the discharge/transfer of the patient.,,INTEGER_POSITIVE,TRACKER,DEFAULT,False,bjDvmb4bfuf,knhSB8VaArg,,,,PUBLIC_RW
255+
iriHpzXRO5e,NEOIPC_HAP_IT_RATIO,NeoIPC HAP I/T-Ratio,NeoIPC HAP I/T-Ratio,I/T-Ratio > 0.2,I/T-Ratio (ratio of immature granulocytes to total granulocytes) > 0.2.,,BOOLEAN,TRACKER,NONE,False,bjDvmb4bfuf,,,,,PUBLIC_RW
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
#{NeoIPC HAP Bradycardia uint value}+#{NeoIPC HAP Fever uint value}+#{NeoIPC HAP Increased respiratory secretion uint value}+#{NeoIPC HAP Laboratory findings uint value}+#{NeoIPC HAP Microbiological test result uint value}+#{NeoIPC HAP Purulent tracheal aspirate uint value}+#{NeoIPC HAP Respiratory distress uint value}+#{NeoIPC HAP Tachypnoea uint value}
1+
#{NeoIPC HAP Bradycardia uint value}+#{NeoIPC HAP Fever uint value}+#{NeoIPC HAP Increased respiratory secretion uint value}+#{NeoIPC HAP Laboratory findings uint value}+#{NeoIPC HAP Microbiological test result uint value}+#{NeoIPC HAP Purulent tracheal aspirate uint value}+#{NeoIPC HAP Respiratory distress uint value}+#{NeoIPC HAP Tachypnoea uint value}+#{NeoIPC HAP IT ratio uint value}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
d2:hasValue( #{NeoIPC HAP IT ratio value} ) && #{NeoIPC HAP IT ratio value}

metadata/common/infectious-agents/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,17 @@ Find-NextFreeInfectiousAgentId
2626

2727
The cmdlet returns `max(existing Id:) + 1`. Gaps left by retired entries are not refilled — IDs are append-only, so a retired ID stays retired and out-of-band downstream consumers don't have to worry about it being silently reused.
2828

29+
## Ontology structure: flag inheritance and virus classification
30+
31+
The ontology is a tree: every node may carry child nodes under `Hierarchies`, `Synonyms`, and `Children`. **A synonym is a first-class, Id-bearing, selectable option**, not just a display alias — a value collected in DHIS2 may be a synonym's `Id`, so downstream classification must treat synonyms exactly like the concepts they belong to.
32+
33+
Two classification mechanisms follow from this, and both are relied upon by the generated DHIS2 program rules (the `set recognized pathogen` / `set virus` ASSIGN rules) **and** by the synthetic-data generator that must produce rule-valid data:
34+
35+
- **`CommonCommensal` (and resistance) flags are inherited.** A node's **effective** flag is the nearest explicit value on its path to the root: its own value if it carries one, otherwise the closest ancestor that does; absent everywhere it defaults to `false`. The flag **flows down** through `Hierarchies`/`Synonyms`/`Children`, so setting `CommonCommensal: true` on a genus marks every species and synonym beneath it without repetition — and an **explicit `false` on a descendant overrides an inherited `true`** (and vice versa). This is why you cannot read a node's flag in isolation: e.g. the *Coagulase-negative staphylococci* group node and the *Staphylococcus epidermidis* species node beneath it can carry different effective flags depending on where the explicit value sits. Resistance flags (`MRSA`, `VRE`, `3GCR`, carbapenem, colistin) use the identical own-or-inherited model.
36+
- **Virus classification is structural, not a flag.** There is no per-concept "kingdom" attribute. A concept **is a virus iff it descends from the top-level `Viruses` realm** (the ICTV branch) — mirroring how bacteria live under `Bacteria` and eukaryotes under `Eukaryota`. Because synonyms are Id-bearing options too, the virus set is the **full subtree** under `Viruses` (every concept *and* synonym Id), so a value entered against a virus synonym still classifies as a virus.
37+
38+
The canonical implementations are `Get-NeoIPCCommonCommensalFlag` / `Get-NeoIPCCommonCommensalCodeSet` and `Get-NeoIPCVirusCodeSet` in the `NeoIPC-Tools` module — the single source both the rule generator and its tests expand from. Compute effective flags/sets through those functions rather than reading a node's literal `CommonCommensal` value or guessing at kingdom membership.
39+
2940
## Data sources
3041

3142
The ontology is compiled from the following sources. All citations and source URLs live here; the licensing implications are documented in [`LICENSE.md`](LICENSE.md).

metadata/common/programRuleActions.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,3 +745,4 @@ zjRbpmI3kP6,HIDESECTION,,,,,PLYGlpyFglh,,,VuAIMPIHrWE,,,,,
745745
zlY0clPbaNQ,ASSIGN,#{NeoIPC SSI Pathogen 1 may be MRSA},expressions/programRules/NeoIPC SSI Pathogen 1 - set MRSA/zlY0clPbaNQ.data.dhis2,,,oL9OcdE1yJb,,,,,,,,
746746
zohOb4LVWRY,HIDEFIELD,,,,,Vr32T79ujlw,XXUaWNIB6fS,,,,,,,
747747
zymb9KfUUyl,ASSIGN,#{NeoIPC NEC Secondary BSI pathogen 3 may be carbapenem-resistant},expressions/programRules/NeoIPC NEC Secondary BSI pathogen 3 - set carbapenem-resistant/zymb9KfUUyl.data.dhis2,,,WFe5AdOdVi3,,,,,,,,
748+
cN9UvYEbpdy,ASSIGN,#{NeoIPC HAP IT ratio uint value},expressions/programRules/NeoIPC HAP IT ratio value - true/cN9UvYEbpdy.data.dhis2,,,KaUyBtMlag2,,,,,,,,

metadata/common/programRuleVariables.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,3 +313,5 @@ PIY50IRnybz,NeoIPC Surveillance end Probiotic days - current event value,DATAELE
313313
nLl9aH1VyU8,Pneumatosis intestinalis imaging - count,CALCULATED_VALUE,INTEGER,False,D8mSSpOpsKj,,,,
314314
mAW7JgTrlDE,Pneumoperitoneum - count,CALCULATED_VALUE,INTEGER,False,D8mSSpOpsKj,,,,
315315
xRaEnfQER4n,Portal venous gas - count,CALCULATED_VALUE,INTEGER,False,D8mSSpOpsKj,,,,
316+
i7uelgbdYta,NeoIPC HAP IT ratio value,DATAELEMENT_CURRENT_EVENT,BOOLEAN,False,D8mSSpOpsKj,iriHpzXRO5e,,,
317+
LZBFFRw1esz,NeoIPC HAP IT ratio uint value,CALCULATED_VALUE,INTEGER_ZERO_OR_POSITIVE,False,D8mSSpOpsKj,,,,

metadata/common/programRules.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,3 +496,4 @@ OleZ8ZztQBQ,NeoIPC Surveillance end NIV days - validate,,expressions/programRule
496496
GYKv7YBS4WS,NeoIPC Surveillance end PVC days - validate,,expressions/programRules/NeoIPC Surveillance end PVC days - validate/condition.dhis2,1,D8mSSpOpsKj,DDLi3OGC5Yh,gY4SFKCv9Ss,
497497
ECeGbWVvXFf,NeoIPC Surveillance end Patient days - set,Automatically calculate the patient days.,expressions/programRules/NeoIPC Surveillance end Patient days - set/condition.dhis2,0,D8mSSpOpsKj,DDLi3OGC5Yh,keCrtq3RtkZ,
498498
e7OKeQN5jpg,NeoIPC Surveillance end Probiotic days - validate,,expressions/programRules/NeoIPC Surveillance end Probiotic days - validate/condition.dhis2,1,D8mSSpOpsKj,DDLi3OGC5Yh,TMcdpdR5yBs,
499+
KaUyBtMlag2,NeoIPC HAP IT ratio value - true,"Adjusts the dialog and assigns variables when ""NeoIPC HAP IT ratio value"" is true",expressions/programRules/NeoIPC HAP IT ratio value - true/condition.dhis2,0,D8mSSpOpsKj,gS3zQzPpsgV,cN9UvYEbpdy,

metadata/common/programStageDataElements.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,4 @@ xLNilVCQYRX,False,False,False,False,False,False,False,44,kjLgZFbq5fZ,wDQxhhyAkEU
250250
IzqEcjgYtq8,True,False,False,False,False,False,False,45,tj1LewUMIT5,wDQxhhyAkEU,,,,wDQxhhyAkEU
251251
SybtHsoMK3M,False,False,False,False,False,False,False,45,si9TqVvY3ZS,wDQxhhyAkEU,,,,wDQxhhyAkEU
252252
MFwHTykuUAC,False,False,False,False,False,False,False,46,HpyUpoaGumw,wDQxhhyAkEU,,,,wDQxhhyAkEU
253+
F7bBi4zapNc,False,False,False,False,False,False,False,70,iriHpzXRO5e,gS3zQzPpsgV,DEFAULT,DEFAULT,,gS3zQzPpsgV

metadata/common/programStageSections.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ CwWYAFnE6jK,Hospital-Acquired Primary Sepsis/BSI,,0,wDQxhhyAkEU,tj1LewUMIT5 rzfN
66
B3WJmZOdTJ3,Necrotizing Enterocolitis (NEC),,0,Cp8UiWONR1B,Ct7gBVqwScW t4xpFiZeCHK,,LISTING,LISTING,
77
iaqYohF3EvA,Surgical Procedure,"Each time a surgical procedure is performed on an enrolled child, you must complete this form and start following up the patient for surgical site infections for 30 days (90 days if an implant was left in place during the procedure).",0,BHWwaviIFvy,AmCKOzIAn8i ey4XJquYYBI ki0ykiLotTO rIXwdgfrfkf VaJLazkIZ5E zPmHnqnPgpf aFchS2IgTuh lgO6BRWuni9 Yu7iGKrtyeL mWLdYcsxiR6 DTZ9HfILgnX BsacMxp5fja vVHhhpB31DW OVCzlltgwNt pojfTuJ4RlC,,LISTING,LISTING,
88
g4LMsgA5hHK,Surgical Site Infection (SSI),,0,cZhr3Wm2fc8,YHYi79E8xhN LCX6yQP1K3D kMJlTTKr5VN bRwNwkGZDnx SWwmWqVfFX4,,LISTING,LISTING,
9-
rCilCYrCaij,Clinical and Laboratory Criteria,,1,gS3zQzPpsgV,Z2GhKrAdO2c J375l07wpEG cA8oyKJiPE0 s77aiscqcnx Ii1DSs7ZGbT UNYrrkrnjM4 cwtpTIICAQP h8FpJvGQDfJ,,LISTING,LISTING,
9+
rCilCYrCaij,Clinical and Laboratory Criteria,,1,gS3zQzPpsgV,Z2GhKrAdO2c J375l07wpEG cA8oyKJiPE0 s77aiscqcnx Ii1DSs7ZGbT UNYrrkrnjM4 cwtpTIICAQP h8FpJvGQDfJ iriHpzXRO5e,,LISTING,LISTING,
1010
hIePMPYES5Q,End of Surveillance,"Information on cumulative risk factors that can be calculated (aggregated) after the surveillance for this patient has ended. ",1,DDLi3OGC5Yh,wxIOvNRgLIE Xn8q3giOGcB Z3GQcwMosHH ZrBvuqbXY0I mRAdPplmm5a nHIk8qJetwF vlFLj6rwVgf gCZe3wijCy4 U4ys5n9dSRR,,LISTING,LISTING,
1111
UZc6N0GOdhK,Identified Organisms,,1,wDQxhhyAkEU,aeua6ZD9pb7 DaNS1ETTD3Z Cl0jt4EHzvY gvmTVfiIk2g pPsXwlpMj1s TKuYdRqfqC4 tmLmPAMJ2XB o8dpLIbHZPX ObnEVllso6d tAx6dWqnOIx S7Dulo4dt8O k4Yid4UsNLg sOb9CDCoAif Db0I00GuIv0 GzAudzVNO2H iStHC3Ope8B Oy5f6YFFTdR fK8yWzyLp4I TsoCuWLh71j UptqkgrbXy6 T6TynP10m5Q bKcuBeH9kER wlGi1qr9xYX OawTDq2eiv0 bIMRQhQt4ia OBC5BfcUwyg QWaa7sH9jIp,,LISTING,LISTING,
1212
YqlVWuPOBcn,Imaging Findings,"At least one of the following diagnostic imaging findings. Imaging diagnostics can be X-ray, CT, MRI or ultrasound.",1,Cp8UiWONR1B,kqSndqsPCLA nIqZE9xCVJ8 vVI3Cks7WgS aMA52Q2QgNk,,LISTING,LISTING,

0 commit comments

Comments
 (0)