guide_pdf_print 1.0.3
guide_pdf_print: ^1.0.3 copied to clipboard
A Flutter package to generate and export medical Partograph PDF reports
example/lib/main.dart
import 'package:example/photograph_screen.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:guide_pdf_print/guide_pdf_print.dart' as guide;
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight,
]);
runApp(const MyApp());
}
final headerJson = {
"healthCenterName": "City Hospital",
"patientName": "Jane Doe",
"dobAge": "24/25",
"phone": "9876543210",
"idNumber": "ID123",
"admissionDateTime": "2026-02-23 10:00",
"onsetOfLabour": "2026-02-23 08:00",
"activePhaseDiagnosisDate": "2026-02-23 10:00",
"ruptureTime": "2026-02-23 09:30",
"parity": "1",
"gravidity": "2",
"uterineHeight": "30",
"abdominalCircumference": "90",
"efw": "2500g",
"riskFactors": "None",
};
final hoursJson = {
"phase1": [
"14:28",
"15:28",
"16:28",
"17:28",
"18:28",
"19:28",
"20:28",
"21:28",
"22:28",
"23:28",
"00:28",
"01:28"
],
"phase2": [],
"activePhase": "Phase 1",
"phase2Start": null
};
final supportiveJson = {
"1+h": [
{
"timestamp": "2026-03-03T14:28:20.000",
"data": {
"companion": {
"resourceType": "Observation",
"id": "companion1772528323215",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:20",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "62071000",
"display": "companion"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"pain_relief": {
"resourceType": "Observation",
"id": "pain1772528323215",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:20",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "428346000",
"display": "pain_relief"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"oral_fluids": {
"resourceType": "Observation",
"id": "oral1772528323215",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:20",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "74364-1",
"display": "oral_fluids"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"nature_of_liquid": {
"resourceType": "Observation",
"id": "liquid1772528323215",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:20",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "33463005",
"display": "nature_of_liquid"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "test",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"posture": {
"resourceType": "Observation",
"id": "posture1772528323215",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:20",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "363855006",
"display": "posture"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Décubitus dorsal (DD)",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2+h": [
{
"timestamp": "2026-03-03T16:09:11.000",
"data": {
"companion": {
"resourceType": "Observation",
"id": "companion1772534365031",
"status": "final",
"effectiveDateTime": "2026-03-03T16:09:11",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "62071000",
"display": "companion"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"pain_relief": {
"resourceType": "Observation",
"id": "pain1772534365031",
"status": "final",
"effectiveDateTime": "2026-03-03T16:09:11",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "428346000",
"display": "pain_relief"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"oral_fluids": {
"resourceType": "Observation",
"id": "oral1772534365031",
"status": "final",
"effectiveDateTime": "2026-03-03T16:09:11",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "74364-1",
"display": "oral_fluids"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"nature_of_liquid": {
"resourceType": "Observation",
"id": "liquid1772534365031",
"status": "final",
"effectiveDateTime": "2026-03-03T16:09:11",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "33463005",
"display": "nature_of_liquid"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "test",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"posture": {
"resourceType": "Observation",
"id": "posture1772534365031",
"status": "final",
"effectiveDateTime": "2026-03-03T16:09:11",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "363855006",
"display": "posture"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "En mouvement (EM)",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"3+h": [],
"4+h": [],
"5+h": [],
"6+h": [],
"7+h": [],
"8+h": [],
"9+h": [],
"10+h": [],
"11+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"1+h": [],
"2+h": [],
"3+h": []
},
"phase1Hours": 12
};
final babyJson = {
"0.30+h": [
{
"timestamp": "2026-03-03T14:28:50.000",
"data": {
"uterineHeight": {
"resourceType": "Observation",
"id": "uterineHeight1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11881-0",
"display": "uterineHeight"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"fhr(bpm)": {
"resourceType": "Observation",
"id": "fhr1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "55283-6",
"display": "fhr(bpm)"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "110",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"fhrDeceleration": {
"resourceType": "Observation",
"id": "fhrDeceleration1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "20217-6",
"display": "fhrDeceleration"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Tardif",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"fetalHead": {
"resourceType": "Observation",
"id": "fetalHead1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11986-7",
"display": "fetalHead"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "3/5",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"abdominalCircumference": {
"resourceType": "Observation",
"id": "abdominalCir1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11884-4",
"display": "abdominalCircumference"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "100",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"estimatedFetalWeight": {
"resourceType": "Observation",
"id": "estimatedFetal1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11881-0",
"display": "estimatedFetalWeight"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "2550 - 3450",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"1+h": [
{
"timestamp": "2026-03-03T14:28:50.000",
"data" : {
"fhr(bpm)": {
"resourceType": "Observation",
"id": "fhr1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T15:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "55283-6",
"display": "fhr(bpm)"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "110",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"fhrDeceleration": {
"resourceType": "Observation",
"id": "fhrDeceleration1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T15:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "20217-6",
"display": "fhrDeceleration"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Tardif",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
}
}
],
"1.30+h": [],
"2+h": [
{
"timestamp": "2026-03-03T16:09:37.000",
"data": {
"fhr(bpm)": {
"resourceType": "Observation",
"id": "fhr1772534417641",
"status": "final",
"effectiveDateTime": "2026-03-03T16:09:37",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "55283-6",
"display": "fhr(bpm)"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "110",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"fhrDeceleration": {
"resourceType": "Observation",
"id": "fhrDeceleration1772534417641",
"status": "final",
"effectiveDateTime": "2026-03-03T16:09:37",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "20217-6",
"display": "fhrDeceleration"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Non",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2.30+h": [],
"3+h": [],
"3.30+h": [],
"4+h": [],
"4.30+h": [],
"5+h": [],
"5.30+h": [],
"6+h": [],
"6.30+h": [],
"7+h": [],
"7.30+h": [],
"8+h": [],
"8.30+h": [],
"9+h": [],
"9.30+h": [],
"10+h": [],
"10.30+h": [],
"11+h": [],
"11.30+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"0.15+h": [],
"0.30+h": [],
"0.45+h": [],
"1+h": [],
"1.15+h": [],
"1.30+h": [],
"1.45+h": [],
"2+h": [],
"2.15+h": [],
"2.30+h": [],
"2.45+h": [],
"3+h": []
},
"phase1Hours": 12
};
final data2h = {
"1+h": [
{
"timestamp": "2026-03-03T14:28:50.000",
"data": {
"uterineHeight": {
"resourceType": "Observation",
"id": "uterineHeight1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11881-0",
"display": "uterineHeight"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"fhr(bpm)": {
"resourceType": "Observation",
"id": "fhr1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "55283-6",
"display": "fhr(bpm)"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "110",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"fhrDeceleration": {
"resourceType": "Observation",
"id": "fhrDeceleration1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "20217-6",
"display": "fhrDeceleration"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Tardif",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"fetalHead": {
"resourceType": "Observation",
"id": "fetalHead1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11986-7",
"display": "fetalHead"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "3/5",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"abdominalCircumference": {
"resourceType": "Observation",
"id": "abdominalCir1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11884-4",
"display": "abdominalCircumference"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "100",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"estimatedFetalWeight": {
"resourceType": "Observation",
"id": "estimatedFetal1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11881-0",
"display": "estimatedFetalWeight"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "2550 - 3450",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2+h": [
{
"timestamp": "2026-03-03T16:09:37.000",
"data": {
"fhr(bpm)": {
"resourceType": "Observation",
"id": "fhr1772534417641",
"status": "final",
"effectiveDateTime": "2026-03-03T16:09:37",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "55283-6",
"display": "fhr(bpm)"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "110",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"fhrDeceleration": {
"resourceType": "Observation",
"id": "fhrDeceleration1772534417641",
"status": "final",
"effectiveDateTime": "2026-03-03T16:09:37",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "20217-6",
"display": "fhrDeceleration"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Non",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"3+h": [],
"4+h": [],
"5+h": [],
"6+h": [],
"7+h": [],
"8+h": [],
"9+h": [],
"10+h": [],
"11+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"0.30m+h": [],
"1+h": [],
"1.30m+h": [],
"2+h": [],
"2.30m+h": [],
"3+h": []
},
"phase1Hours": 12,
"phase2Start": null
};
final datanew = {
"1+h": [
{
"timestamp": "2026-03-03T14:28:50.000",
"data": {
"fetalHead": {
"resourceType": "Observation",
"id": "fetalHead1772528375851",
"status": "final",
"effectiveDateTime": "2026-03-03T14:28:50",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11986-7",
"display": "fetalHead"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "3/5",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2+h": [],
"3+h": [],
"4+h": [],
"5+h": [],
"6+h": [],
"7+h": [],
"8+h": [],
"9+h": [],
"10+h": [],
"11+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"0.30m+h": [],
"1+h": [],
"1.30m+h": [],
"2+h": [],
"2.30m+h": [],
"3+h": []
},
"phase1Hours": 12,
"phase2Start": null
};
final medData = {
"1+h": [
{
"timestamp": "2026-03-03T14:30:59.000",
"data": {
"uterineContraction": {
"resourceType": "Observation",
"id": "uterineContraction1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "uterineContraction"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "5",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"durationOfUterine": {
"resourceType": "Observation",
"id": "durationOfUterine1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "durationOfUterine"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"vaginalBleeding": {
"resourceType": "Observation",
"id": "vaginalBleeding1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "289530006",
"display": "vaginalBleeding"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "peu",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"dilation": {
"resourceType": "Observation",
"id": "dilation1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11787-9",
"display": "dilation"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "8",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"membranes": {
"resourceType": "Observation",
"id": "membranes1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "249125003",
"display": "membranes"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Membranes Intactes",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2+h": [
{
"timestamp": "2026-03-03T16:11:18.000",
"data": {
"uterineContraction": {
"resourceType": "Observation",
"id": "uterineContraction1772534486476",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:18",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "uterineContraction"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "5",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"durationOfUterine": {
"resourceType": "Observation",
"id": "durationOfUterine1772534486477",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:18",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "durationOfUterine"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"3+h": [],
"4+h": [],
"5+h": [],
"6+h": [],
"7+h": [],
"8+h": [],
"9+h": [],
"10+h": [],
"11+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"0.30m+h": [],
"1+h": [],
"1.30m+h": [],
"2+h": [],
"2.30m+h": [],
"3+h": []
},
"phase1Hours": 12,
"phase2Start": null
};
final laborData = {
"0.30+h": [
{
"timestamp": "2026-03-03T14:30:59.000",
"data": {
"uterineContraction": {
"resourceType": "Observation",
"id": "uterineContraction1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "uterineContraction"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "5",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"durationOfUterine": {
"resourceType": "Observation",
"id": "durationOfUterine1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "durationOfUterine"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"vaginalBleeding": {
"resourceType": "Observation",
"id": "vaginalBleeding1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "289530006",
"display": "vaginalBleeding"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "peu",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"dilation": {
"resourceType": "Observation",
"id": "dilation1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11787-9",
"display": "dilation"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "8",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"membranes": {
"resourceType": "Observation",
"id": "membranes1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "249125003",
"display": "membranes"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Membranes Intactes",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"1+h": [],
"1.30+h": [],
"2+h": [
{
"timestamp": "2026-03-03T16:11:18.000",
"data": {
"uterineContraction": {
"resourceType": "Observation",
"id": "uterineContraction1772534486476",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:18",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "uterineContraction"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "5",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"durationOfUterine": {
"resourceType": "Observation",
"id": "durationOfUterine1772534486477",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:18",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "durationOfUterine"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2.30+h": [],
"3+h": [],
"3.30+h": [],
"4+h": [],
"4.30+h": [],
"5+h": [],
"5.30+h": [],
"6+h": [],
"6.30+h": [],
"7+h": [],
"7.30+h": [],
"8+h": [],
"8.30+h": [],
"9+h": [],
"9.30+h": [],
"10+h": [],
"10.30+h": [],
"11+h": [],
"11.30+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"0.15+h": [],
"0.30+h": [],
"0.45+h": [],
"1+h": [],
"1.15+h": [],
"1.30+h": [],
"1.45+h": [],
"2+h": [],
"2.15+h": [],
"2.30+h": [],
"2.45+h": [],
"3+h": []
},
"phase1Hours": 12
};
final newData = {
"1+h": [
{
"timestamp": "2026-03-03T14:30:59.000",
"data": {
"uterineContraction": {
"resourceType": "Observation",
"id": "uterineContraction1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "uterineContraction"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "5",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"durationOfUterine": {
"resourceType": "Observation",
"id": "durationOfUterine1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "durationOfUterine"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"vaginalBleeding": {
"resourceType": "Observation",
"id": "vaginalBleeding1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "289530006",
"display": "vaginalBleeding"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "peu",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"dilation": {
"resourceType": "Observation",
"id": "dilation1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11787-9",
"display": "dilation"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "8",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"membranes": {
"resourceType": "Observation",
"id": "membranes1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "249125003",
"display": "membranes"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Membranes Intactes",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2+h": [
{
"timestamp": "2026-03-03T16:11:18.000",
"data": {
"uterineContraction": {
"resourceType": "Observation",
"id": "uterineContraction1772534486476",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:18",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "uterineContraction"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "5",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"durationOfUterine": {
"resourceType": "Observation",
"id": "durationOfUterine1772534486477",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:18",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "70514001",
"display": "durationOfUterine"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"3+h": [],
"4+h": [],
"5+h": [],
"6+h": [],
"7+h": [],
"8+h": [],
"9+h": [],
"10+h": [],
"11+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"0.15+h": [],
"0.30+h": [],
"0.45+h": [],
"1+h": [],
"1.15+h": [],
"1.30+h": [],
"1.45+h": [],
"2+h": [],
"2.15+h": [],
"2.30+h": [],
"2.45+h": [],
"3+h": []
},
"phase1Hours": 12,
"phase2Start": null
};
final newData1 = {
"1+h": [
{
"timestamp": "2026-03-03T14:30:59.000",
"data": {
"dilation": {
"resourceType": "Observation",
"id": "dilation1772528496326",
"status": "final",
"effectiveDateTime": "2026-03-03T14:30:59",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11787-9",
"display": "dilation"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "8",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2+h": [],
"3+h": [],
"4+h": [],
"5+h": [],
"6+h": [],
"7+h": [],
"8+h": [],
"9+h": [],
"10+h": [],
"11+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"0.15+h": [],
"0.30+h": [],
"0.45+h": [],
"1+h": [],
"1.15+h": [],
"1.30+h": [],
"1.45+h": [],
"2+h": [],
"2.15+h": [],
"2.30+h": [],
"2.45+h": [],
"3+h": []
}
};
final newData2 = {
"1+h": [
{
"timestamp": "2026-03-03T14:29:44.000",
"data": {
"systolic BP": {
"resourceType": "Observation",
"id": "systolic1772528430870",
"status": "final",
"effectiveDateTime": "2026-03-03T14:29:44",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8480-6",
"display": "systolic BP"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "120",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"diastolic BP": {
"resourceType": "Observation",
"id": "diastolic1772528430871",
"status": "final",
"effectiveDateTime": "2026-03-03T14:29:44",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8462-4",
"display": "diastolic BP"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "70",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"pulse": {
"resourceType": "Observation",
"id": "pulse1772528430871",
"status": "final",
"effectiveDateTime": "2026-03-03T14:29:44",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "107146-3",
"display": "pulse"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "90",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"temperature": {
"resourceType": "Observation",
"id": "temperature1772528430871",
"status": "final",
"effectiveDateTime": "2026-03-03T14:29:44",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8310-5",
"display": "temperature"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "36.6",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"dipstick": {
"resourceType": "Observation",
"id": "dipstick1772528430871",
"status": "final",
"effectiveDateTime": "2026-03-03T14:29:44",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "39264-7",
"display": "dipstick"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"urineProtien": {
"resourceType": "Observation",
"id": "urineProtien1772528430871",
"status": "final",
"effectiveDateTime": "2026-03-03T14:29:44",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "12345",
"display": "urineProtien"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "+++",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"urineAcetone": {
"resourceType": "Observation",
"id": "urineAcetone1772528430871",
"status": "final",
"effectiveDateTime": "2026-03-03T14:29:44",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "5569-9",
"display": "urineAcetone"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "+++",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2+h": [],
"3+h": [],
"4+h": [],
"5+h": [],
"6+h": [],
"7+h": [],
"8+h": [],
"9+h": [],
"10+h": [],
"11+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"0.30m+h": [],
"1+h": [],
"1.30m+h": [],
"2+h": [],
"2.30m+h": [],
"3+h": []
},
"phase1Hours": 12,
"phase2Start": null
};
final newData3 = {
"1+h": [
{
"timestamp": "2026-03-03T14:31:46.000",
"data": {
"oxytocinAdministered": {
"resourceType": "Observation",
"id": "oxytocinAdministered1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "112115002",
"display": "oxytocinAdministered"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"amtOfOxytocin": {
"resourceType": "Observation",
"id": "amtOfOxytocin1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "74364-1",
"display": "amtOfOxytocin"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "10UI dans 1litre de soluté",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"timeOfOxy": {
"resourceType": "Observation",
"id": "timeOfOxy1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "112115002",
"display": "timeOfOxy"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "02:31 PM",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"oxyAdministrationRate": {
"resourceType": "Observation",
"id": "oxyAdministrationRate1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "782034002",
"display": "oxyAdministrationRate"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"medicationToPreeclampsia": {
"resourceType": "Observation",
"id": "medicationToPreeclampsia1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "398254007",
"display": "medicationToPreeclampsia"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Hydralazine",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"dateTimeOfHydralazine": {
"resourceType": "Observation",
"id": "dateTimeOfHydralazine1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "387125005",
"display": "dateTimeOfHydralazine"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "02:32 PM",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"otherMedication": {
"resourceType": "Observation",
"id": "otherMedication1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "182833002",
"display": "otherMedication"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"nameOtherMed": {
"resourceType": "Observation",
"id": "nameOtherMed1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "182833002",
"display": "nameOtherMed"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "test",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"doseOtherMed": {
"resourceType": "Observation",
"id": "doseOtherMed1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "182833002",
"display": "doseOtherMed"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"routeOtherMed": {
"resourceType": "Observation",
"id": "routeOtherMed1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "182833002",
"display": "routeOtherMed"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "IV",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"ivFuildWithOxy": {
"resourceType": "Observation",
"id": "ivFuildWithOxy1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "118431008",
"display": "ivFuildWithOxy"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"nameOfIv": {
"resourceType": "Observation",
"id": "nameOfIv1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "118431008",
"display": "nameOfIv"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "test",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"flowRateIv": {
"resourceType": "Observation",
"id": "flowRateIv1772528543484",
"status": "final",
"effectiveDateTime": "2026-03-03T14:31:46",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "118431008",
"display": "flowRateIv"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2+h": [
{
"timestamp": "2026-03-03T16:11:34.000",
"data": {
"oxytocinAdministered": {
"resourceType": "Observation",
"id": "oxytocinAdministered1772534511064",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:34",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "112115002",
"display": "oxytocinAdministered"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Oui",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"amtOfOxytocin": {
"resourceType": "Observation",
"id": "amtOfOxytocin1772534511065",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:34",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "74364-1",
"display": "amtOfOxytocin"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "10UI dans 1litre de soluté",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"timeOfOxy": {
"resourceType": "Observation",
"id": "timeOfOxy1772534511065",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:34",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "112115002",
"display": "timeOfOxy"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "04:11 PM",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"oxyAdministrationRate": {
"resourceType": "Observation",
"id": "oxyAdministrationRate1772534511065",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:34",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "782034002",
"display": "oxyAdministrationRate"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "30",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"medicationToPreeclampsia": {
"resourceType": "Observation",
"id": "medicationToPreeclampsia1772534511065",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:34",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "398254007",
"display": "medicationToPreeclampsia"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Non",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"otherMedication": {
"resourceType": "Observation",
"id": "otherMedication1772534511065",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:34",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "182833002",
"display": "otherMedication"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Non",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"ivFuildWithOxy": {
"resourceType": "Observation",
"id": "ivFuildWithOxy1772534511065",
"status": "final",
"effectiveDateTime": "2026-03-03T16:11:34",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "118431008",
"display": "ivFuildWithOxy"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Non",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"3+h": [],
"4+h": [],
"5+h": [],
"6+h": [],
"7+h": [],
"8+h": [],
"9+h": [],
"10+h": [],
"11+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"1+h": [],
"2+h": [],
"3+h": []
},
"phase1Hours": 12
};
final newData4 = {
"1+h": [
{
"timestamp": "2026-03-03T14:32:32.000",
"data": {
"carePlan": {
"resourceType": "Observation",
"id": "carePlan1772528563294",
"status": "final",
"effectiveDateTime": "2026-03-03T14:32:32",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "734163000",
"display": "carePlan"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Soins du périnée, Rupture artificielle des membranes",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"evaluation": {
"resourceType": "Observation",
"id": "evaluation1772528563294",
"status": "final",
"effectiveDateTime": "2026-03-03T14:32:32",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "385958001",
"display": "evaluation"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "testing",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"2+h": [
{
"timestamp": "2026-03-03T16:12:16.000",
"data": {
"carePlan": {
"resourceType": "Observation",
"id": "carePlan1772534545458",
"status": "final",
"effectiveDateTime": "2026-03-03T16:12:16",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "734163000",
"display": "carePlan"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "accélération du travail au moyen d’une perfusion d’ocytocine, Rupture artificielle des membranes",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"evaluation": {
"resourceType": "Observation",
"id": "evaluation1772534545458",
"status": "final",
"effectiveDateTime": "2026-03-03T16:12:16",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "385958001",
"display": "evaluation"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "testingg",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"3+h": [],
"4+h": [],
"5+h": [],
"6+h": [],
"7+h": [],
"8+h": [],
"9+h": [],
"10+h": [],
"11+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"1+h": [],
"2+h": [],
"3+h": []
},
"phase1Hours": 12
};
final newData5 ={
"2+h": [
{
"timestamp": "2026-03-03T16:12:16.000",
"data": {
"carePlan": {
"resourceType": "Observation",
"id": "carePlan1772534545458",
"status": "final",
"effectiveDateTime": "2026-03-03T16:12:16",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "734163000",
"display": "carePlan"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "accélération du travail au moyen d’une perfusion d’ocytocine, Rupture artificielle des membranes",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"evaluation": {
"resourceType": "Observation",
"id": "evaluation1772534545458",
"status": "final",
"effectiveDateTime": "2026-03-03T16:12:16",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "385958001",
"display": "evaluation"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "testingg",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
},
{
"timestamp": "2026-03-03T14:32:32.000",
"data": {
"carePlan": {
"resourceType": "Observation",
"id": "carePlan1772528563294",
"status": "final",
"effectiveDateTime": "2026-03-03T14:32:32",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "734163000",
"display": "carePlan"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Soins du périnée, Rupture artificielle des membranes",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"evaluation": {
"resourceType": "Observation",
"id": "evaluation1772528563294",
"status": "final",
"effectiveDateTime": "2026-03-03T14:32:32",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "385958001",
"display": "evaluation"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "testing",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"4+h": [
{
"timestamp": "2026-03-03T14:32:32.000",
"data": {
"carePlan": {
"resourceType": "Observation",
"id": "carePlan1772528563294",
"status": "final",
"effectiveDateTime": "2026-03-03T14:32:32",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "734163000",
"display": "carePlan"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "Soins du périnée, Rupture artificielle des membranes",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
},
"evaluation": {
"resourceType": "Observation",
"id": "evaluation1772528563294",
"status": "final",
"effectiveDateTime": "2026-03-03T14:32:32",
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "385958001",
"display": "evaluation"
}
]
},
"subject": {
"reference": "Patient/1772528196928000"
},
"encounter": {
"reference": "Encounter/Enc1772528196928"
},
"valueString": "testing",
"performer": [
{
"reference": "Practitioner/55",
"display": "tm"
}
]
}
}
}
],
"6+h": [],
"8+h": [],
"10+h": [],
"12+h": [],
"isFullyDilated": false,
"phase2": {
"1+h": [],
"2+h": [],
"3+h": []
}
};
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
final parser = guide.PartographParserService();
final gridJsonList = [
supportiveJson,
babyJson,
data2h,
datanew,
medData,
laborData,
newData,
newData2,
newData3,
newData4,
newData5,
];
final partographData = parser.parse(
headerJson: headerJson,
hoursJson: hoursJson,
gridJsonList: gridJsonList,
phase1DurationHours: 12,
);
print(partographData.grid.supportiveCare.companion.phase1Values);
print(partographData.grid.baby.baselineFhr.phase1Values);
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// TRY THIS: Try running your application with "flutter run". You'll see
// the application has a purple toolbar. Then, without quitting the app,
// try changing the seedColor in the colorScheme below to Colors.green
// and then invoke "hot reload" (save your changes or press the "hot
// reload" button in a Flutter-supported IDE, or press "r" if you used
// the command line to start the app).
//
// Notice that the counter didn't reset back to zero; the application
// state is not lost during the reload. To reset the state, use hot
// restart instead.
//
// This works for code too, not just values: Most code changes can be
// tested with just a hot reload.
colorScheme: .fromSeed(seedColor: Colors.deepPurple),
),
home: PartographScreen(
phase1Hours: 12,
titles: guide.PartographTitles(
appBarTitle: "Partograph",
healthCenterName: "Health Center Name",
patientName: "Patient Name",
dobAge: "DOB/Age",
phone: "Phone",
idNumber: "ID Number",
admissionDateTime: "Admission DateTime",
onsetOfLabour: "Onset of Labour",
activePhaseDiagnosisDate: "Active Phase Diagnosis Date",
ruptureTime: "Rupture Time",
parity: "Parity",
gravidity: "Gravidity",
uterineHeight: "Uterine Height",
abdominalCircumference: "Abdominal Circumference",
efw: "EFW",
riskFactors: "Risk Factors",
hoursMin: "Hours/min",
numberOfHours: "No. of Hours",
secondStage: "Second Stage",
supportiveCare: "Supportive Care",
baby: "Baby",
women: "Women",
labourProgress: "Labour Progress",
medication: "Medication",
sharedDecision: "Shared Decision",
companion: "Companion",
painRelief: "Pain relief",
oralFluid: "Oral fluid",
posture: "Posture",
baselineFhr: "Baseline FHR",
fhrDeceleration: "FHR deceleration",
amnioticFluid: "Amniotic fluid",
fetalPosition: "Fetal position",
caput: "Caput",
moulding: "Moulding",
pulse: "Pulse",
systolicBp: "Systolic BP",
diastolicBp: "Diastolic BP",
temperature: "Temperature °C",
urine: "Urine",
contractions: "Contractions",
duration: "Duration",
oxytocin: "Oxytocin (U/L, drops/min)",
medicine: "Medicine",
ivFluid: "IV fluid",
assessment: "Assessment",
plan: "Plan",
generatedOn: "Generated on",
firstStage: 'Active Stage',
cervix: 'Cervix [Plot X]',
decent: 'Descent [Plot O]'
),
data: partographData
),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
// This widget is the home page of your application. It is stateful, meaning
// that it has a State object (defined below) that contains fields that affect
// how it looks.
// This class is the configuration for the state. It holds the values (in this
// case the title) provided by the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// This call to setState tells the Flutter framework that something has
// changed in this State, which causes it to rerun the build method below
// so that the display can reflect the updated values. If we changed
// _counter without calling setState(), then the build method would not be
// called again, and so nothing would appear to happen.
_counter++;
});
}
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called, for instance as done
// by the _incrementCounter method above.
//
// The Flutter framework has been optimized to make rerunning build methods
// fast, so that you can just rebuild anything that needs updating rather
// than having to individually change instances of widgets.
return Scaffold(
appBar: AppBar(
// TRY THIS: Try changing the color here to a specific color (to
// Colors.amber, perhaps?) and trigger a hot reload to see the AppBar
// change color while the other colors stay the same.
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: Column(
// Column is also a layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
//
// TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
// action in the IDE, or press "p" in the console), to see the
// wireframe for each widget.
mainAxisAlignment: .center,
children: [
const Text('You have pushed the button this many times:'),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
);
}
}