{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### inspect Parameters, Q and QR examples for attachments and submit-attachments operation\n", "\n", "see this spreadsheet: input/examples-yaml/cdex-parameters-examples.csv" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "from json import loads, dumps\n", "from yaml import safe_load as loady, safe_dump as dumpy\n", "my_types = ['Parameters', 'Questionnaire', 'QuestionnaireResponse']\n", "!pwd\n", "for f in Path(r'input/examples-yaml').glob('cdex-*.yml'):\n", " myobj = loady(f.read_text())\n", " if myobj['resourceType'] in my_types:\n", " print(f'========{f}========')\n", " print(myobj['id'])\n", " # print(dumpy(myobj['meta']))\n", " try:\n", " print(dumpy(myobj['parameter'][0], sort_keys=False))\n", " except:\n", " pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Convert examples to includes\n", "\n", "- strip ids and meta\n", "- update to input/includes-yaml" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "from json import loads, dumps\n", "from yaml import safe_load as loady, safe_dump as dumpy\n", "!pwd\n", "\n", "for f in Path(r'input/examples-yaml').glob('cdex-*.yml'):\n", "\n", " myobj = loady(f.read_text())\n", " if myobj['resourceType'] in my_types:\n", " print(f'========{f}========')\n", " print(myobj['id'])\n", " myobj.pop('id')\n", " myobj.pop('meta')\n", " print(f'{dumpy(myobj, sort_keys=False)[0:150]}.....')\n", " print('printing to...', out := f\"input/includes-yaml/{f.name}\")\n", " Path(out).write_text(dumpy(myobj, indent=2, sort_keys=False))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### inspect task examples for task-based and requesting attachments \n", "see this spreadsheet: input/examples-yaml/cdex-task-examples.csv" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "from json import loads, dumps\n", "from yaml import safe_load as loady, safe_dump as dumpy\n", "\n", "keep_id_list = ['cdex-task-example19','cdex-task-example22','cdex-task-example26']\n", "\n", "!pwd\n", "\n", "for f in Path(r'input/examples-yaml').glob('cdex-task*.yml'):\n", " print(f'========{f}========')\n", " myobj = loady(f.read_text())\n", " print(task_id := myobj['id'])\n", " if task_id == 'cdex-task-example20':\n", " print(\"========\")\n", " print(dumpy(myobj['reasonCode']))\n", " print(\"========\")\n", " if task_id in keep_id_list:\n", " print(\"++++++++\")\n", " print(f\"keep id for: {dumpy(myobj['id'])}\")\n", " print(\"++++++++\")\n", " # for input in myobj[\"input\"]:\n", " # if input['type']['coding'][0]['code'] == 'purpose-of-use':\n", " # print(dumpy(input)) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Convert Task examples to includes\n", "\n", "- strip ids and meta\n", "- update to input/includes-yaml" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "from json import loads, dumps\n", "from yaml import safe_load as loady, safe_dump as dumpy\n", "from fhir.resources import task as Task" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!pwd\n", "p_code = 'CLMATTCH' #default\n", "p_display = 'claim attachment' #default\n", "\n", "\n", "keep_profile_list = ['cdex-task-example19','cdex-task-example22']\n", "update_example_id = {'cdex-task-example24': 'cdex-task-example22',\n", " 'cdex-task-example27': 'cdex-task-example26'}\n", "POU = f'''type:\n", " coding:\n", " - code: purpose-of-use\n", " system: http://hl7.org/fhir/us/davinci-cdex/CodeSystem/cdex-temp\n", "valueCodeableConcept:\n", " coding:\n", " - code: {p_code}\n", " system: http://terminology.hl7.org/CodeSystem/v3-ActReason\n", " display: {p_display}\n", "'''\n", "print(POU)\n", "\n", "for f in Path(r'input/examples-yaml').glob('cdex-task*.yml'):\n", " print(f'========{f}========')\n", " myobj = loady(f.read_text())\n", " if Task.Task(**myobj):\n", " print('valid')\n", " print(task_id := myobj['id'])\n", " if task_id in keep_profile_list:\n", " myobj['meta'].pop('extension')\n", " else:\n", " myobj.pop('meta')\n", " print(f'{dumpy(myobj, sort_keys=False)[0:150]}.....')\n", " print('printing to...', out := f\"input/includes-yaml/{f.stem}-currentid.yml\")\n", " Path(out).write_text(dumpy(myobj, indent=2, sort_keys=False))\n", "\n", " if task_id in update_example_id.keys():\n", " # p_code = 'CLMATTCH'\n", " # p_display = 'claim attachment'\n", " # myobj['input'].append(loady(POU))\n", " # print(dumpy(myobj['meta']))\n", " # myobj['meta'].pop('extension')\n", " myobj['id'] = update_example_id[task_id]\n", " print(f'{dumpy(myobj, sort_keys=False)[0:150]}.....')\n", " print('printing to...', out := f\"input/includes-yaml/{f.stem}-updateid.yml\")\n", " Path(out).write_text(dumpy(myobj, indent=2, sort_keys=False))\n", " \n", " myobj.pop('id')\n", " print(f'{dumpy(myobj, sort_keys=False)[0:150]}.....')\n", " print('printing to...', out := f\"input/includes-yaml/{f.name}\")\n", " Path(out).write_text(dumpy(myobj, indent=2, sort_keys=False))\n", " print(f'{dumpy(myobj, sort_keys=False)[0:150]}.....')\n", " print('printing to...', out := f\"input/includes-yaml/{f.name}\")\n", " Path(out).write_text(dumpy(myobj, indent=2, sort_keys=False))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.2 64-bit ('jupyter')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.2" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "18672f2fb81dcbb023a0ac48a86c775a19488782369d96ffbd3382a22fd285cf" } } }, "nbformat": 4, "nbformat_minor": 2 }