[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-neo4j-patient-journey":3,"mdc-ue1hcc-key":32,"related-org-neo4j-patient-journey":382,"related-repo-neo4j-patient-journey":453},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":23,"topics":27,"repo":28,"sourceUrl":30,"mdContent":31},"patient-journey","analyze patient journeys using graph models","Model and analyze patient journeys through a healthcare system with Neo4j — longitudinal care pathways, comorbidity, treatment-pattern queries across patients, encounters, diagnoses, and more.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"neo4j","Neo4j","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fneo4j.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Graph Analysis","graph-analysis","tag",{"name":17,"slug":18,"type":15},"Healthcare","healthcare",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Data Analysis","data-analysis",0,"https:\u002F\u002Fgithub.com\u002Fneo4j\u002Fstudio-agent-use-cases","2026-08-18T03:49:43.794045",null,[],{"repoUrl":24,"stars":23,"forks":23,"topics":29,"description":26},[],"https:\u002F\u002Fgithub.com\u002Fneo4j\u002Fstudio-agent-use-cases\u002Ftree\u002FHEAD\u002Fpatient-journey","---\nname: patient-journey\ndescription: Model and analyze patient journeys through a healthcare system with Neo4j — longitudinal care pathways, comorbidity, treatment-pattern queries across patients, encounters, diagnoses, and more.\nmetadata:\n  neo4j-card-title: Patient Journey\n  neo4j-card-category: Healthcare & Life Sciences\n  neo4j-card-description: Map longitudinal care pathways and discover comorbidities across a connected clinical graph.\n  neo4j-icon-category: healthcare-lifesciences\n---\n\n# Patient Journey\n\nUse this skill for healthcare patient-journey analysis: mapping individual care pathways, discovering comorbidities across a patient population, understanding provider–patient relationships, and querying longitudinal clinical data modelled as a graph.\n\nSource reference:\n\n- \u003Chttps:\u002F\u002Fgithub.com\u002Fjarasch\u002Ffield-industry-use-cases\u002Fblob\u002Fmain\u002Fmodules\u002FROOT\u002Fpages\u002Flife-sciences\u002Fmedical-care\u002Fpatient-journey.adoc>\n\nThis is a graph-modelling and query-pattern aid, not clinical guidance. Treat query results as analytical leads, not clinical diagnoses or regulatory conclusions. The bundled sample data is synthetic (Synthea, Massachusetts, seed 100) and does not represent real patients.\n\n## Introducing this package\n\nWhen the user first opens this package, greet them with a short introduction in your own words — don't recite this file. Convey:\n\n- The core idea: a patient's history is scattered across encounters, lab results, prescriptions, diagnoses, and the providers and facilities that delivered care. A graph represents those connections directly — traverse from a patient along their sequence of encounters, out to the conditions diagnosed, drugs prescribed, and measurements taken at each one, instead of stitching records together with joins.\n- The bundled sample data is synthetic (Synthea, Massachusetts) with overlapping conditions such as hypertension and type 2 diabetes — enough to demonstrate single-patient pathways and cross-patient comorbidity patterns.\n- What you can help with: explaining the model, walking through the query patterns from a single patient to population-level comorbidity analysis, importing the sample data or adapting the model to their own EHR, FHIR, or OMOP data, and running Cypher once a database is connected.\n\nEnd with a clear next step, such as asking whether they'd like to explore the model or start importing data.\n\n## Model\n\n- Nodes: `Patient {id, name, birthDate}`, `Encounter {id, date, type}`, `Observation {id, code, description, value, units}`, `Condition {code, description}`, `Drug {code, name}`, `Provider {id, name}`, `Speciality {name}`, `Organisation {id, name, address}`.\n- Relationships: `(Patient)-[:HAS_ENCOUNTER]->(Encounter)`, `(Encounter)-[:NEXT]->(Encounter)`, `(Encounter)-[:HAS_OBSERVATION]->(Observation)`, `(Encounter)-[:DIAGNOSED]->(Condition)`, `(Encounter)-[:PRESCRIBED]->(Drug)`, `(Encounter)-[:ATTENDED_BY]->(Provider)`, `(Provider)-[:HAS_SPECIALITY]->(Speciality)`, `(Provider)-[:BELONGS_TO]->(Organisation)`.\n- Full schema, mappings, and sample CSVs are in `GRAPH_MODEL.json` and `sample-data\u002F`; runnable Cypher with expected results is in `QUERIES.md`.\n\n## Operational Constraints\n\nFor runnable examples:\n\n- Prefer the bundled `sample-data\u002F` Import flow. Offer any write-based Cypher only after explicit confirmation that database writes are wanted.\n- Clarify the intended target database and connection before executing anything.\n- `Condition` and `Drug` nodes are shared across patients by standardised code (SNOMED CT \u002F RxNorm); comorbidity queries depend on this. If source data uses local codes, nodes will not merge and cross-patient queries return misleading results.\n- `Observation.value` is stored as a string to hold mixed measurement types; cast with `toFloat(o.value)` for numeric comparisons.\n- Bound every `NEXT` chain traversal with an explicit maximum depth.\n\n## Response Shape\n\nWhen returning guidance, keep output structured:\n\n```text\nModel assumptions\nCypher (if requested)\nWhat this surfaces\nTuning options\nValidation approach\n```\n",{"data":33,"body":39},{"name":4,"description":6,"metadata":34},{"neo4j-card-title":35,"neo4j-card-category":36,"neo4j-card-description":37,"neo4j-icon-category":38},"Patient Journey","Healthcare & Life Sciences","Map longitudinal care pathways and discover comorbidities across a connected clinical graph.","healthcare-lifesciences",{"type":40,"children":41},"root",[42,49,55,60,76,81,88,93,111,116,122,278,284,289,359,365,370],{"type":43,"tag":44,"props":45,"children":46},"element","h1",{"id":4},[47],{"type":48,"value":35},"text",{"type":43,"tag":50,"props":51,"children":52},"p",{},[53],{"type":48,"value":54},"Use this skill for healthcare patient-journey analysis: mapping individual care pathways, discovering comorbidities across a patient population, understanding provider–patient relationships, and querying longitudinal clinical data modelled as a graph.",{"type":43,"tag":50,"props":56,"children":57},{},[58],{"type":48,"value":59},"Source reference:",{"type":43,"tag":61,"props":62,"children":63},"ul",{},[64],{"type":43,"tag":65,"props":66,"children":67},"li",{},[68],{"type":43,"tag":69,"props":70,"children":74},"a",{"href":71,"rel":72},"https:\u002F\u002Fgithub.com\u002Fjarasch\u002Ffield-industry-use-cases\u002Fblob\u002Fmain\u002Fmodules\u002FROOT\u002Fpages\u002Flife-sciences\u002Fmedical-care\u002Fpatient-journey.adoc",[73],"nofollow",[75],{"type":48,"value":71},{"type":43,"tag":50,"props":77,"children":78},{},[79],{"type":48,"value":80},"This is a graph-modelling and query-pattern aid, not clinical guidance. Treat query results as analytical leads, not clinical diagnoses or regulatory conclusions. The bundled sample data is synthetic (Synthea, Massachusetts, seed 100) and does not represent real patients.",{"type":43,"tag":82,"props":83,"children":85},"h2",{"id":84},"introducing-this-package",[86],{"type":48,"value":87},"Introducing this package",{"type":43,"tag":50,"props":89,"children":90},{},[91],{"type":48,"value":92},"When the user first opens this package, greet them with a short introduction in your own words — don't recite this file. Convey:",{"type":43,"tag":61,"props":94,"children":95},{},[96,101,106],{"type":43,"tag":65,"props":97,"children":98},{},[99],{"type":48,"value":100},"The core idea: a patient's history is scattered across encounters, lab results, prescriptions, diagnoses, and the providers and facilities that delivered care. A graph represents those connections directly — traverse from a patient along their sequence of encounters, out to the conditions diagnosed, drugs prescribed, and measurements taken at each one, instead of stitching records together with joins.",{"type":43,"tag":65,"props":102,"children":103},{},[104],{"type":48,"value":105},"The bundled sample data is synthetic (Synthea, Massachusetts) with overlapping conditions such as hypertension and type 2 diabetes — enough to demonstrate single-patient pathways and cross-patient comorbidity patterns.",{"type":43,"tag":65,"props":107,"children":108},{},[109],{"type":48,"value":110},"What you can help with: explaining the model, walking through the query patterns from a single patient to population-level comorbidity analysis, importing the sample data or adapting the model to their own EHR, FHIR, or OMOP data, and running Cypher once a database is connected.",{"type":43,"tag":50,"props":112,"children":113},{},[114],{"type":48,"value":115},"End with a clear next step, such as asking whether they'd like to explore the model or start importing data.",{"type":43,"tag":82,"props":117,"children":119},{"id":118},"model",[120],{"type":48,"value":121},"Model",{"type":43,"tag":61,"props":123,"children":124},{},[125,189,250],{"type":43,"tag":65,"props":126,"children":127},{},[128,130,137,139,145,146,152,153,159,160,166,167,173,174,180,181,187],{"type":48,"value":129},"Nodes: ",{"type":43,"tag":131,"props":132,"children":134},"code",{"className":133},[],[135],{"type":48,"value":136},"Patient {id, name, birthDate}",{"type":48,"value":138},", ",{"type":43,"tag":131,"props":140,"children":142},{"className":141},[],[143],{"type":48,"value":144},"Encounter {id, date, type}",{"type":48,"value":138},{"type":43,"tag":131,"props":147,"children":149},{"className":148},[],[150],{"type":48,"value":151},"Observation {id, code, description, value, units}",{"type":48,"value":138},{"type":43,"tag":131,"props":154,"children":156},{"className":155},[],[157],{"type":48,"value":158},"Condition {code, description}",{"type":48,"value":138},{"type":43,"tag":131,"props":161,"children":163},{"className":162},[],[164],{"type":48,"value":165},"Drug {code, name}",{"type":48,"value":138},{"type":43,"tag":131,"props":168,"children":170},{"className":169},[],[171],{"type":48,"value":172},"Provider {id, name}",{"type":48,"value":138},{"type":43,"tag":131,"props":175,"children":177},{"className":176},[],[178],{"type":48,"value":179},"Speciality {name}",{"type":48,"value":138},{"type":43,"tag":131,"props":182,"children":184},{"className":183},[],[185],{"type":48,"value":186},"Organisation {id, name, address}",{"type":48,"value":188},".",{"type":43,"tag":65,"props":190,"children":191},{},[192,194,200,201,207,208,214,215,221,222,228,229,235,236,242,243,249],{"type":48,"value":193},"Relationships: ",{"type":43,"tag":131,"props":195,"children":197},{"className":196},[],[198],{"type":48,"value":199},"(Patient)-[:HAS_ENCOUNTER]->(Encounter)",{"type":48,"value":138},{"type":43,"tag":131,"props":202,"children":204},{"className":203},[],[205],{"type":48,"value":206},"(Encounter)-[:NEXT]->(Encounter)",{"type":48,"value":138},{"type":43,"tag":131,"props":209,"children":211},{"className":210},[],[212],{"type":48,"value":213},"(Encounter)-[:HAS_OBSERVATION]->(Observation)",{"type":48,"value":138},{"type":43,"tag":131,"props":216,"children":218},{"className":217},[],[219],{"type":48,"value":220},"(Encounter)-[:DIAGNOSED]->(Condition)",{"type":48,"value":138},{"type":43,"tag":131,"props":223,"children":225},{"className":224},[],[226],{"type":48,"value":227},"(Encounter)-[:PRESCRIBED]->(Drug)",{"type":48,"value":138},{"type":43,"tag":131,"props":230,"children":232},{"className":231},[],[233],{"type":48,"value":234},"(Encounter)-[:ATTENDED_BY]->(Provider)",{"type":48,"value":138},{"type":43,"tag":131,"props":237,"children":239},{"className":238},[],[240],{"type":48,"value":241},"(Provider)-[:HAS_SPECIALITY]->(Speciality)",{"type":48,"value":138},{"type":43,"tag":131,"props":244,"children":246},{"className":245},[],[247],{"type":48,"value":248},"(Provider)-[:BELONGS_TO]->(Organisation)",{"type":48,"value":188},{"type":43,"tag":65,"props":251,"children":252},{},[253,255,261,263,269,271,277],{"type":48,"value":254},"Full schema, mappings, and sample CSVs are in ",{"type":43,"tag":131,"props":256,"children":258},{"className":257},[],[259],{"type":48,"value":260},"GRAPH_MODEL.json",{"type":48,"value":262}," and ",{"type":43,"tag":131,"props":264,"children":266},{"className":265},[],[267],{"type":48,"value":268},"sample-data\u002F",{"type":48,"value":270},"; runnable Cypher with expected results is in ",{"type":43,"tag":131,"props":272,"children":274},{"className":273},[],[275],{"type":48,"value":276},"QUERIES.md",{"type":48,"value":188},{"type":43,"tag":82,"props":279,"children":281},{"id":280},"operational-constraints",[282],{"type":48,"value":283},"Operational Constraints",{"type":43,"tag":50,"props":285,"children":286},{},[287],{"type":48,"value":288},"For runnable examples:",{"type":43,"tag":61,"props":290,"children":291},{},[292,304,309,327,346],{"type":43,"tag":65,"props":293,"children":294},{},[295,297,302],{"type":48,"value":296},"Prefer the bundled ",{"type":43,"tag":131,"props":298,"children":300},{"className":299},[],[301],{"type":48,"value":268},{"type":48,"value":303}," Import flow. Offer any write-based Cypher only after explicit confirmation that database writes are wanted.",{"type":43,"tag":65,"props":305,"children":306},{},[307],{"type":48,"value":308},"Clarify the intended target database and connection before executing anything.",{"type":43,"tag":65,"props":310,"children":311},{},[312,318,319,325],{"type":43,"tag":131,"props":313,"children":315},{"className":314},[],[316],{"type":48,"value":317},"Condition",{"type":48,"value":262},{"type":43,"tag":131,"props":320,"children":322},{"className":321},[],[323],{"type":48,"value":324},"Drug",{"type":48,"value":326}," nodes are shared across patients by standardised code (SNOMED CT \u002F RxNorm); comorbidity queries depend on this. If source data uses local codes, nodes will not merge and cross-patient queries return misleading results.",{"type":43,"tag":65,"props":328,"children":329},{},[330,336,338,344],{"type":43,"tag":131,"props":331,"children":333},{"className":332},[],[334],{"type":48,"value":335},"Observation.value",{"type":48,"value":337}," is stored as a string to hold mixed measurement types; cast with ",{"type":43,"tag":131,"props":339,"children":341},{"className":340},[],[342],{"type":48,"value":343},"toFloat(o.value)",{"type":48,"value":345}," for numeric comparisons.",{"type":43,"tag":65,"props":347,"children":348},{},[349,351,357],{"type":48,"value":350},"Bound every ",{"type":43,"tag":131,"props":352,"children":354},{"className":353},[],[355],{"type":48,"value":356},"NEXT",{"type":48,"value":358}," chain traversal with an explicit maximum depth.",{"type":43,"tag":82,"props":360,"children":362},{"id":361},"response-shape",[363],{"type":48,"value":364},"Response Shape",{"type":43,"tag":50,"props":366,"children":367},{},[368],{"type":48,"value":369},"When returning guidance, keep output structured:",{"type":43,"tag":371,"props":372,"children":377},"pre",{"className":373,"code":375,"language":48,"meta":376},[374],"language-text","Model assumptions\nCypher (if requested)\nWhat this surfaces\nTuning options\nValidation approach\n","",[378],{"type":43,"tag":131,"props":379,"children":380},{"__ignoreMap":376},[381],{"type":48,"value":375},{"items":383,"total":452},[384,399,414,430,437],{"slug":385,"name":385,"fn":386,"description":387,"org":388,"tags":389,"stars":23,"repoUrl":24,"updatedAt":398},"ev-route-planning","plan electric vehicle routes with graph analysis","Plan electric vehicle routes across a logistics network with Neo4j — battery state-of-charge, charging stops, time-of-day travel, and Cypher 25 stateful path patterns across cities, charging stations, roads, and fleet vehicles.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[390,391,394,395],{"name":13,"slug":14,"type":15},{"name":392,"slug":393,"type":15},"Logistics","logistics",{"name":9,"slug":8,"type":15},{"name":396,"slug":397,"type":15},"Optimization","optimization","2026-08-18T03:49:45.937937",{"slug":400,"name":400,"fn":401,"description":402,"org":403,"tags":404,"stars":23,"repoUrl":24,"updatedAt":413},"identity-validation","resolve identities across systems using graph analysis","Resolve the same person, account, or device across systems and channels using shared and near-duplicate identifiers. Covers cross-channel identity resolution, golden-record\u002FMDM matching, synthetic identity fraud, household linking, and address geocoding with spatial functions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[405,408,409,412],{"name":406,"slug":407,"type":15},"Data Engineering","data-engineering",{"name":13,"slug":14,"type":15},{"name":410,"slug":411,"type":15},"Identity","identity",{"name":9,"slug":8,"type":15},"2026-08-18T03:49:46.446479",{"slug":415,"name":415,"fn":416,"description":417,"org":418,"tags":419,"stars":23,"repoUrl":24,"updatedAt":429},"insurance-claims-fraud","detect insurance claims fraud using graph analysis","Detect insurance claims fraud by modelling claimants, medical professionals, vehicles, and claims as a graph. Provides a graph model, bundled sample data, and Cypher for repeat claimants, unusual medical-professional activity, and vehicles reused across claims.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[420,421,424,425,428],{"name":21,"slug":22,"type":15},{"name":422,"slug":423,"type":15},"Fraud","fraud",{"name":13,"slug":14,"type":15},{"name":426,"slug":427,"type":15},"Insurance","insurance",{"name":9,"slug":8,"type":15},"2026-08-18T03:49:43.272995",{"slug":4,"name":4,"fn":5,"description":6,"org":431,"tags":432,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[433,434,435,436],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":438,"name":438,"fn":439,"description":440,"org":441,"tags":442,"stars":23,"repoUrl":24,"updatedAt":451},"retail-banking","detect retail banking fraud rings","Detect retail banking transaction fraud rings with graph models, Neo4j schema design, and Cypher query patterns for ring, chronology, and amount-decay checks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[443,446,447,448],{"name":444,"slug":445,"type":15},"Finance","finance",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":449,"slug":450,"type":15},"Security","security","2026-08-18T03:49:47.474584",5,{"items":454,"total":452},[455,462,469,477,484],{"slug":385,"name":385,"fn":386,"description":387,"org":456,"tags":457,"stars":23,"repoUrl":24,"updatedAt":398},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[458,459,460,461],{"name":13,"slug":14,"type":15},{"name":392,"slug":393,"type":15},{"name":9,"slug":8,"type":15},{"name":396,"slug":397,"type":15},{"slug":400,"name":400,"fn":401,"description":402,"org":463,"tags":464,"stars":23,"repoUrl":24,"updatedAt":413},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[465,466,467,468],{"name":406,"slug":407,"type":15},{"name":13,"slug":14,"type":15},{"name":410,"slug":411,"type":15},{"name":9,"slug":8,"type":15},{"slug":415,"name":415,"fn":416,"description":417,"org":470,"tags":471,"stars":23,"repoUrl":24,"updatedAt":429},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[472,473,474,475,476],{"name":21,"slug":22,"type":15},{"name":422,"slug":423,"type":15},{"name":13,"slug":14,"type":15},{"name":426,"slug":427,"type":15},{"name":9,"slug":8,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":478,"tags":479,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[480,481,482,483],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":438,"name":438,"fn":439,"description":440,"org":485,"tags":486,"stars":23,"repoUrl":24,"updatedAt":451},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[487,488,489,490],{"name":444,"slug":445,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":449,"slug":450,"type":15}]