guide_pdf_print 1.0.3 copy "guide_pdf_print: ^1.0.3" to clipboard
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),
      ),
    );
  }
}
0
likes
0
points
570
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package to generate and export medical Partograph PDF reports

License

unknown (license)

Dependencies

flutter, pdf, printing

More

Packages that depend on guide_pdf_print