{
"info": {
"author": "Md Nazrul Islam",
"author_email": "email2nazrul@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Framework :: Plone",
"Framework :: Plone :: 5.0",
"Framework :: Plone :: 5.1",
"Framework :: Plone :: 5.2",
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
],
"description": ".. image:: https://img.shields.io/pypi/status/plone.app.fhirfield.svg\n :target: https://pypi.python.org/pypi/plone.app.fhirfield/\n :alt: Egg Status\n\n.. image:: https://img.shields.io/travis/nazrulworld/plone.app.fhirfield/master.svg\n :target: http://travis-ci.org/nazrulworld/plone.app.fhirfield\n :alt: Travis Build Status\n\n.. image:: https://coveralls.io/repos/github/nazrulworld/plone.app.fhirfield/badge.svg?branch=master\n :target: https://coveralls.io/github/nazrulworld/plone.app.fhirfield?branch=master\n :alt: Test Coverage\n\n.. image:: https://img.shields.io/pypi/pyversions/plone.recipe.sublimetext.svg\n :target: https://pypi.python.org/pypi/plone.recipe.sublimetext/\n :alt: Python Versions\n\n.. image:: https://img.shields.io/pypi/v/plone.app.fhirfield.svg\n :target: https://pypi.python.org/pypi/plone.app.fhirfield/\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/l/plone.app.fhirfield.svg\n :target: https://pypi.python.org/pypi/plone.app.fhirfield/\n :alt: License\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n\n\nBackground (plone.app.fhirfield)\n================================\n\n`FHIR`_ (Fast Healthcare Interoperability Resources) is the industry standard for Healthcare system. Our intend to implement `FHIR`_ based system using `Plone`_! `plone.app.fhirfield`_ will make life easier to create, manage content for `FHIR resources`_ as well search facilities for any FHIR Resources.\n\nHow It Works\n------------\n\nThis field is working as like other `zope.schema `_ field, just add and use it. You will feed the field value as either json string or python dict of `FHIR`_ resources through web form or any restapi client. This field has built-in `FHIR`_ resource validator and parser.\n\nExample::\n\n from plone.app.fhirfield import FhirResource\n from plone.supermodel import model\n\n class IMyContent(model.Schema):\n\n _resource = FhirResource(\n title=u'your title',\n desciption=u'your desciption',\n resource_type='any fhir resource type[optional]'\n )\n\nThe field's value is the instance of a specilized class `FhirResourceValue` inside the context, which is kind of proxy class of `fhirclient model `_ with additional methods and attributes.\n\n**Make field indexable**\n\nA specilized Catalog PluginIndexes is named ``FhirFieldIndex`` is available, you will use it as like other catalog indexes. However importantly you have to maintain a strict convention (index name must be started with any valid fhir resource name (no matter uppercase or lowercase) and should _(underscore) be used as separator, i.e task_index(_))\n\nExample::\n\n \n \n\n\nFeatures\n--------\n\n- Plone restapi support\n- Widget: z3cform support\n- plone.supermodel support\n- plone.rfc822 marshaler field support\n- `100% FHIR search compliance `_ catalog search.\n\n\nAvailable Field's Options\n=========================\n\nThis field has got all standard options (i.e `title`, `required`, `desciption` and so on) with additionally options for the purpose of either validation or constraint those are related to `FHIR`_.\n\n\n\nresource_type\n Required: No\n\n Default: None\n\n Type: String\n\n The name of `FHIR`_ resource can be used as constraint, meaning that we can restricted only accept certain resource. If FHIR json is provided that contains other resource type, would raise validation error.\n Example: `FhirResource(....,resource_type='Patient')`\n\nmodel\n Required: No\n\n Default: None\n\n Type: String + full python path (dotted) of the model class.\n\n Like `resource_type` option, it can be used as constraint, however additionally this option enable us to use custom model class other than fhirclient's model.\n Example: `FhirResource(....,model='fhirclient.models.patient.Patient')`\n\nmodel_interface\n Required: No\n\n Default: None\n\n Type: String + full python path (dotted) of the model class.\n\n Unlike `model` option, this option has more versatile goal although you can use it for single resource restriction. The advanced usecase like, the field could accept muiltiple resources types those model class implements the provided interface. For example you made a interface called `IMedicalService` and (`Organization`, `Patient`, `Practitioner`) models those are implementing `IMedicalService`. So when you provides this option value, actually three types of fhir json can now be accepted by this field.\n Example: `FhirResource(....,model='plone.app.interfaces.IFhirResourceModel')`\n\n\nField's Value API\n=================\n\nField's value is a specilized class `plone.app.fhirfield.value.FhirResourceValue` which has reponsibilty to act as proxy of `fhirclient model's class `_. This class provides some powerful methods.\n\nFhirResourceValue::as_json\n\n Originally this method is derived from fhirclient base model, you will always have to use this method during negotiation (although our serializer doing that for you automatically). This method not takes any argument, it returns FHIR json representation of resource.\n\n\nFhirResourceValue::patch\n\n If you are familar with `FHIRPath Patch `_, this method one of the strongest weapon of this class. Patch applying on any `FHIR`_ resources is noting but so easy.\n This method takes one mandatory argument `patch_data` and that value should be list of patch items (`jsonpatch `_).\n\n Example::\n\n from plone.app.fhirfield import FhirResource\n from plone.supermodel import model\n\n class ITask(model.Schema):\n\n resource = FhirResource(\n title=u'your title',\n desciption=u'your desciption',\n resource_type='Task'\n )\n\n patch_data = [\n {'op': 'replace', 'path': '/source/display', 'value': 'Patched display'},\n {'op': 'replace', 'path': '/status', 'value': 'Reopen'}\n ]\n task_content.resource.patch(patch_data)\n\n\nFhirResourceValue::stringify\n\n This method returns string representation of fhir resource json value. Normally `as_json` returns python's dict type data. This method takes optional `prettify` argument, by setting this argument True, method will return human/print friendly representation.\n\nFhirResourceValue::foreground_origin\n\n There may some situation come, where you will need just pure instance of fhir model, this method serves that purpose. This method returns current fhir resource model's instance.\n\n Example::\n\n from fhirclient.models.task import Task\n from plone.app.fhirfield import FhirResource\n from plone.supermodel import model\n\n class ITask(model.Schema):\n\n resource = FhirResource(\n title=u'your title',\n desciption=u'your desciption',\n resource_type='Task'\n )\n\n task = task_content.resource.foreground_origin()\n assert isinstance(task, Task)\n\n\nHelper API\n==========\n\nThis package provides some useful functions those could be usable in your codebase.\n\n`resource_type_str_to_fhir_model`\n\n This function return appropriate `fhirclient model `_ class based on provided `resource type`. On wrong resource type `zope.interface.Invalid` exception is raisen.\n\n Example::\n\n >>> from plone.app.fhirfield.helpers import resource_type_str_to_fhir_model\n >>> task_model_class = resource_type_str_to_fhir_model('Task')\n\n\nelasticsearch setup\n===================\n\nIf your intent to use elasticsearch based indexing and query, this section for you! you can `find more details here `_\n\nserver setup\n------------\n\nserver version is restricted to `2.4.x`, means we cannot use latest version of elasticsearch. i.e 5.6.x\n\n- `Download from here `_ and install according to documentation.\n- For development you could use docker container. The Makefile is available, `~$ make run-es`\n\n\ncollective.elasticsearch setup\n------------------------------\n\nFull configuration `guide could be found here `_. Simple steps are described bellow.\n\n1. **create catalog/indexes**: First you will need add indexes for each fhirfield used in your project. each resource type has it's own Meta Index. `example is here `_\n\n2. Install `collective.elasticsearch` addon from plone control panel.\n\n3. Convert your Indexes to elasticsearch. Go To `{portal url}/@@elastic-controlpanel`\n\n4. In the settings form's `Indexes for which all searches are done through ElasticSearch` section add your all indexes those you mentioned into catalog.xml file, also add `portal_type`\n\n5. Now save and again `Convert Catalog`.\n\n\n\nInstallation\n============\n\nInstall plone.app.fhirfield by adding it to your buildout::\n\n [buildout]\n\n ...\n\n eggs =\n plone.app.fhirfield [elasticsearch]\n\n\nand then running ``bin/buildout``. Go to plone control and install ``plone.app.fhirfield`` or If you are creating an addon that depends on this product, you may add ``profile-plone.app.fhirfield:default`` in ``metadata.xml`` at profiles.\n\nconfiguration\n-------------\n\nThis product provides three plone registry based records ``fhirfield.es.index.mapping.nested_fields.limit``, ``fhirfield.es.index.mapping.depth.limit``, ``fhirfield.es.index.mapping.total_fields.limit``. Those are related to ElasticSearch index mapping setup, if you aware about it, then you have option to modify from plone control panel (Registry).\n\n\n\nLinks\n=====\n\nCode repository:\n\n https://github.com/nazrulworld/plone.app.fhirfield\n\nContinuous Integration:\n\n https://travis-ci.org/nazrulworld/plone.app.fhirfield\n\nIssue Tracker:\n\n https://github.com/nazrulworld/plone.app.fhirfield/issues\n\nset max_map_count value (Linux)\n\n```\nsudo sysctl -w vm.max_map_count=262144\n```\n\nLicense\n=======\n\nThe project is licensed under the GPLv2.\n\n.. _`FHIR`: https://www.hl7.org/fhir/overview.html\n.. _`Plone`: https://www.plone.org/\n.. _`FHIR Resources`: https://www.hl7.org/fhir/resourcelist.html\n.. _`Plone restapi`: http://plonerestapi.readthedocs.io/en/latest/\n.. _`plone.app.fhirfield`: https://pypi.org/project/plone.app.fhirfield/\n.. _`jmespath`: https://github.com/jmespath/jmespath.py\n.. _`jsonpath-rw`: http://jsonpath-rw.readthedocs.io/en/latest/\n.. _`jsonpath-ng`: https://pypi.python.org/pypi/jsonpath-ng/1.4.3\n\nMigration\n=========\n\n2.0.0 to 2.x.x\n--------------\n\n1. Do full reindex of objects (remove and build)\n\n1.0.0 to 2.0.0\n--------------\n\n1. Simply old indexes are not usable any more! as new ES server (6.x.x) is used.\n2. Do backup of your existing Data.fs (important!).\n3. From plone controlpanel, Go to elasticsearch settings page ``/@@elastic-controlpanel``.\n4. Convert Catalog again, make sure in the ``Indexes for which all searches are done through ElasticSearch`` section\n your desired indexes are select.\n5. If your site is behind the proxy, we suggest make `ssh tuneling to connect `_ your site.\n Because next takes much times, (depends on your data size)\n6. Rebuild Catalog && wait for success, if you face any problem try again.\n\n\n1.0.0rc3 to 1.0.0rc4\n--------------------\n\n1. Keep backup of existing Data.fs (nice to have)\n\n2. Go to plone control panel's Addon settings\n\n3. Uninstall and Install again `plone.app.fhirfield`\n\n1.0.0b6 to 1.0.0rc3\n-------------------\n\n1. Keep backup of existing Data.fs (important)\n\n2. Just `Clear and Rebuild` existing catalogs. Go to site management -> portal_catalog -> Advanced Tab and click the `Clear and Rebuild` button. Caution: this activity could take longer time.\n\n\n1.0.0bx to 1.0.0b6\n------------------\n\n1. You will need to remove all the indexes who are based on `Fhir*******Index`. Go to ZMI to portal catalog tool. `{site url}/portal_catalog/manage_catalogIndexes`.\n\n2. Update the `plone.app.fhirfield` version and run the buildout.\n\n3. List out any products those defined (profile/catalog.xml) indexes based on `Fhir*******Index` as meta type. Reninstall them all.\n\n4. From ZMI, portal_catalog tool, `{site url}/portal_catalog/manage_catalogAdvanced` ``Clear and Rebuild``\n\n\nFHIR Search Query\n=================\n\nThis product has a query builder helper, that is actually transforming `fhir search`_ params into `Plone's search compatible `_ params so that PortalCatalog tool understand what to do. Each of FHIR Indexes provided by this product, by default using this query builder but it is possible to provide prepared query.\n\n\nQuery Builder\n-------------\n\n``plone.app.fhir.field.helpers.build_elasticsearch_query`` takes only `HL7 fhir standard search parameters `_ and transforms to elasticsearch compatible query that is executing through plone catalog search. However belows are lists of standard parameters those are supported by this `Query Builder` (more to continue adding, until full supports are completed)\n\n\nIntegrate in your REST API service\n----------------------------------\n\nThis product has been got all battery included to be integrated with plone.restapi for becoming `HL7 FHIR standard RESTful API `_ server which would provide search service as `defined here `_.\n\n`Example RESTful service could be found here `_\n\n\nSupported Search Parameters\n---------------------------\n\n+------------------------------------------------+---------------------------------+\n| Parameter Name | Remarks |\n+================================================+=================================+\n| `_id` | Yes |\n+------------------------------------------------+---------------------------------+\n| `_lastUpdated` | Yes |\n+------------------------------------------------+---------------------------------+\n| `_profile` | Yes |\n+------------------------------------------------+---------------------------------+\n| `birthdate` | Yes |\n+------------------------------------------------+---------------------------------+\n| `gender` | Yes |\n+------------------------------------------------+---------------------------------+\n| `patient` | Yes |\n+------------------------------------------------+---------------------------------+\n| `status` | Yes |\n+------------------------------------------------+---------------------------------+\n| `owner` | Yes |\n+------------------------------------------------+---------------------------------+\n| `subject` | Yes |\n+------------------------------------------------+---------------------------------+\n| `effective` | Yes |\n+------------------------------------------------+---------------------------------+\n| `url` | Yes |\n+------------------------------------------------+---------------------------------+\n| `version` | Yes |\n+------------------------------------------------+---------------------------------+\n| `authored` | Yes |\n+------------------------------------------------+---------------------------------+\n| `identifier` | Yes |\n+------------------------------------------------+---------------------------------+\n| `based-on` | Yes |\n+------------------------------------------------+---------------------------------+\n| `part-of` | Yes |\n+------------------------------------------------+---------------------------------+\n| `price-override` | Yes |\n+------------------------------------------------+---------------------------------+\n| `quantity` | Yes |\n+------------------------------------------------+---------------------------------+\n| `factor-override` | Yes |\n+------------------------------------------------+---------------------------------+\n| `length` | Yes |\n+------------------------------------------------+---------------------------------+\n| `code` | Yes |\n+------------------------------------------------+---------------------------------+\n| `medication` | Yes |\n+------------------------------------------------+---------------------------------+\n| `address` | Yes |\n+------------------------------------------------+---------------------------------+\n| `address-city` | Yes |\n+------------------------------------------------+---------------------------------+\n| `address-country` | Yes |\n+------------------------------------------------+---------------------------------+\n| `address-postalcode` | Yes |\n+------------------------------------------------+---------------------------------+\n| `address-state` | Yes |\n+------------------------------------------------+---------------------------------+\n| `address-use` | Yes |\n+------------------------------------------------+---------------------------------+\n| `telecom` | Yes |\n+------------------------------------------------+---------------------------------+\n| `email` | Yes |\n+------------------------------------------------+---------------------------------+\n| `phone` | Yes |\n+------------------------------------------------+---------------------------------+\n| `name` | Yes |\n+------------------------------------------------+---------------------------------+\n| `family` | Yes |\n+------------------------------------------------+---------------------------------+\n| `given` | Yes |\n+------------------------------------------------+---------------------------------+\n| `code-value-concept` | Yes |\n+------------------------------------------------+---------------------------------+\n| `code-value-date` | Yes |\n+------------------------------------------------+---------------------------------+\n| `code-value-quantity` | Yes |\n+------------------------------------------------+---------------------------------+\n| `code-value-string` | Yes |\n+------------------------------------------------+---------------------------------+\n\n\n\n.. _`fhir search`: https://www.hl7.org/fhir/search.html\n\n\n.. _restapi_examples_doctest:\n\nREST Client Examples\n--------------------\n\nGetting single resource, here we are getting Patient resource by ID.\n\nExample(1)::\n\n >>> response = admin_session.get('/@fhir/Patient/19c5245f-89a8-49f8-b244-666b32adb92e')\n >>> response.status_code\n 200\n \n >>> response.json()['resourceType'] == 'Patient'\n True\n \n >>> response = admin_session.get('/@fhir/Patient/19c5245f-fake-id')\n >>> response.status_code\n 404\n \n\n\nSearch Observation by Patient reference with status condition. Any observation until December 2017 and earlier than January 2017.\n\nExample(2)::\n\n >>> response = admin_session.get('/@fhir/Observation?patient=Patient/19c5245f-89a8-49f8-b244-666b32adb92e&status=final&_lastUpdated=lt2017-12-31&_lastUpdated=gt2017-01-01')\n >>> response.status_code\n 200\n >>> len(response.json())\n 1\n \n\n\nAdd FHIR Resource through REST API\n\nExample(3)::\n\n >>> import os\n >>> import json\n >>> import uuid\n >>> import DateTime\n >>> import time\n\n >>> with open(os.path.join(FIXTURE_PATH, 'Patient.json'), 'r') as f:\n ... fhir_json = json.load(f)\n\n >>> fhir_json['id'] = str(uuid.uuid4())\n >>> fhir_json['name'][0]['text'] = 'Another Patient'\n >>> response = admin_session.post('/@fhir/Patient', json=fhir_json)\n >>> response.status_code\n 201\n >>> time.sleep(1)\n >>> response = admin_session.get('/@fhir/Patient?active=true')\n >>> len(response.json())\n 2\n\n\nUpdate (PATCH) FHIR Resource the Patient is currently activated, we will deactive.\n\nExample(4)::\n\n >>> patch = [{'op': 'replace', 'path': '/active', 'value': False}]\n >>> response = admin_session.patch('/@fhir/Patient/19c5245f-89a8-49f8-b244-666b32adb92e', json={'patch': patch})\n >>> response.status_code\n 204\n \n\n\nContributors\n============\n\n- Md Nazrul Islam (Author), email2nazrul@gmail.com\n\n\nChangelog\n=========\n\n2.1.0 (2019-08-20)\n------------------\n\n- ZCatalog's index datum value type is now string (json serialized) (previously was dictionary type).\n\n**Migration Required**\n\n1. Do complete reindexing.\n\n\n2.0.0 (2019-05-18)\n------------------\n\nNewfeatures\n\n- `Issue#14 `_ Now reference query is powerful yet!\n It is possible now search by resourceType only or mixing up.\n\n- `Issue#21 `_ One of the powerful feature added, IN/OR support in search query.\n Now possible to provide multiple values separated by comma.\n\nBreakings\n\n- Drop support Elastic server version 2.3.x.\n\n\nBugfixes\n\n- Important fix for ``Quantity`` search type, now value prefix not impact on other (unit, system). Additionally\n also now possible to search by unit or system and code (without value)\n\n\n1.0.0 (2019-01-18)\n------------------\n\nBreaking\n\n- Drop ``fhirclient`` dependency, instead make ``fhir.resources`` dependency.\n- ``collective.elasticsearch`` version minimum version ``2.0.5`` has been pinned.\n\n\n1.0.0rc4 (2018-10-25)\n---------------------\n\nBreaking\n\n- Drop support for Plone 4.xx (sorry).\n\nImprovements\n\n- Issue#10 JSON Viewer added in display mode.\n\n- Issue#18 `api` module to make available for all publicly usable methods, functions, classes.\n\n- Issue#17 Add suports for duplicate param names into query string. It is now possible to provide multiple condition for same param type. For example `?_lastUpdated=gt2015-10-15T06:31:18+00:00&_lastUpdated=lt2018-01-15T06:31:18+00:00`\n\n- Issue#10 Add support for `Composite` type FHIR search param.\n\n- Issue#13 Add support for `Address` and `ContactPoint` mapping. It opens up many search params.\n\n- Mappings are more enriched, so many missing mappings are added, like `valueString`, `valueQuantity` and so on.[nazrulworld]\n\n- Issue#12 Full support for `code` search param type has been added, it also opens up for other search parameters (y).\n\n- Issue#15 support for `Humanane` mapping in search.\n\n\n1.0.0rc3 (2018-09-22)\n---------------------\n\nImprovements\n\n- `Issue: 6 `_ A major improvement has been done, now very slim version (`id`, `resourceType`, `meta`) of FHIR json resource has been indexed in ZCatalog (zope index) version, however previously whole fhir resource was stored as a result now huge storage savings, perhaps improves indexing performance. [nazrulworld]\n\n\n1.0.0rc2 (2018-08-29)\n---------------------\n\nBugfixes\n\n- Issue 5: `FHIR search's modifier 'missing' is not working for nested mapping `_\n\n1.0.0rc1 (2018-08-27)\n---------------------\n\nNewfeatures\n\n- `Identifier search parameter `_ is active now (both array of identifier and single object identifier).\n\n- Array of Reference query support (for example `basedOn` (list of reference) ) is active now. Although normal object reference has already been supported.\n\n- All available mappings for searchable resources are generated.\n\n- `FHIR search sort feature `_ is available!\n\n- `fhirfield.es.index.mapping.nested_fields.limit`, `fhirfield.es.index.mapping.depth.limit` and `fhirfield.es.index.mapping.total_fields.limit` `registry records `_ are `available to setup ES mapping `_\n\n- `URI` and `Number` type parameter based search are fully available.\n\n- **`resourceType` filter is automatically injected into every generated query.** Query Builder knows about which resourceType should be.\n\n\nBreaking Changes\n\n- `plone.app.fhirfield` have to install, as some registry records (settings) for elasticsearch mapping have been introduced.\n\n- Any deprecated FHIR Field Indexes other than `FhirFieldIndex` (`FhirOrganizationIndex` and so on) are removed\n\n\n1.0.0b7 (2018-08-10)\n--------------------\n\n- `Media search available `_.\n- `plone.app.fhirfield.SearchQueryError` exception class available, it would be used to catch any fhir query buiding errors. [nazrulworld]\n\n\n1.0.0b6 (2018-08-04)\n--------------------\n\n- Fix: minor type mistake on non existing method called.\n- Migration guide has been added. [nazrulworld]\n\n\n1.0.0b5 (2018-08-03)\n--------------------\n\nNewfeatures\n\n- `FhirFieldIndex` Catalog Index has been refactored. Now this class is capable to handle all the FHIR resources. That's why other PluginIndexes related to FhirField have been deprecated.\n- New ZCatalog (plone index) index naming convention has been introduced. Any index name for FhirFieldIndex must have fhir resource type name as prefix. for example: `task_index`\n\n\n1.0.0b4 (2018-08-01)\n--------------------\n\n- Must Update (fix): Important updates made on mapping, reference field mapping was not working if value contains with `/`, now made it tokenize by indecating index is `not_analyzed`\n- `_profile` search parameter is now available. [nazrulworld]\n\n\n1.0.0b3 (2018-07-30)\n--------------------\n\n- Mapping improvment for `FhirQuestionnaireResponseIndex`, `FhirObservationIndex`, `FhirProcedureRequestIndex`, `FhirTaskIndex`, `FhirDeviceRequestIndex`\n\n\n1.0.0b2 (2018-07-29)\n--------------------\n\nNew Features:\n\n- supports for elasticsearch has been added. Now many basic `fhir search `_ are possible to be queried.\n- upto 22 FHIR fields indexes (`FhirActivityDefinitionIndex`, `FhirAppointmentIndex`, `FhirCarePlanIndex`, `FhirDeviceIndex`, `FhirDeviceRequestIndex`, `FhirHealthcareServiceIndex`, `FhirMedicationAdministrationIndex`, `FhirMedicationDispenseIndex`, `FhirMedicationRequestIndex`, `FhirMedicationStatementIndex`, `FhirObservationIndex`, `FhirOrganizationIndex`, `FhirPatientIndex`, `FhirPlanDefinitionIndex`, `FhirPractitionerIndex`, `FhirProcedureRequestIndex`, `FhirQuestionnaireIndex`, `FhirQuestionnaireResponseIndex`, `FhirRelatedPersonIndex`, `FhirTaskIndex`, `FhirValueSetIndex`)\n- Mappings for all available fhir indexes are created.\n- `elasticsearch` option is now available for setup.py\n\n1.0.0b1 (2018-03-17)\n--------------------\n\n- first beta version has been released.\n\n\n1.0.0a10 (2018-03-12)\n---------------------\n\n- fix(bug) Issue-3: `resource_type` constraint don't raise exception from validator.\n\n1.0.0a9 (2018-03-08)\n--------------------\n\n- There is no restriction/limit over fhir resources, all available models are supported.\n\n\n1.0.0a8 (2018-01-22)\n--------------------\n\n- fix(bug) Issue-: Empty string value raise json validation error #2:https://github.com/nazrulworld/plone.app.fhirfield/issues/2\n\n\n1.0.0a7 (2018-01-21)\n--------------------\n\n- fix(bug) Issue-1: _RuntimeError: maximum recursion depth exceeded while calling a Python object at form view. #1:https://github.com/nazrulworld/plone.app.fhirfield/issues/1\n\n\n1.0.0a6 (2018-01-14)\n--------------------\n\n- missing `HealthcareService` fhir model is added as supported model.\n\n\n1.0.0a5 (2018-01-14)\n--------------------\n\n- `Person` fhir model added in whitelist.\n\n\n1.0.0a4 (2018-01-14)\n--------------------\n\n- IFhirResource.model_interface field type changed to `DottedName` from `InterfaceField`.\n\n\n1.0.0a3 (2017-12-22)\n--------------------\n\n- `FHIR Patch`_ support added. Now patching fhir resource is more easy to manage.\n- plone.supermodel support is confirmed.[nazrulworld]\n- plone.rfc822 marshaler field support.[nazrulworld]\n\n\n1.0.0a2 (2017-12-10)\n--------------------\n\n- `FhirResourceWidget` is made working state. From now it is possible to adapt FhirResourceWidget` with z3c.form [nazrulworld]\n\n\n1.0.0a1 (2017-12-05)\n--------------------\n\n- Initial release.\n [nazrulworld]\n\n.. _`FHIR Patch`: https://www.hl7.org/fhir/fhirpatch.html\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://pypi.python.org/pypi/plone.app.fhirfield",
"keywords": "Python Plone Zope FHIR Field",
"license": "GPL version 2",
"maintainer": "",
"maintainer_email": "",
"name": "plone.app.fhirfield",
"package_url": "https://pypi.org/project/plone.app.fhirfield/",
"platform": "",
"project_url": "https://pypi.org/project/plone.app.fhirfield/",
"project_urls": {
"Homepage": "https://pypi.python.org/pypi/plone.app.fhirfield"
},
"release_url": "https://pypi.org/project/plone.app.fhirfield/2.1.0/",
"requires_dist": [
"setuptools",
"jsonpatch",
"fhir.resources (==3.0.1)",
"collective.elasticsearch (<4.0.0,>=3.0.3) ; extra == 'elasticsearch'",
"plone.restapi ; extra == 'test'",
"plone.schemaeditor ; extra == 'test'",
"plone.supermodel ; extra == 'test'",
"plone.app.testing ; extra == 'test'",
"plone.testing (>=5.0.0) ; extra == 'test'",
"plone.app.contenttypes ; extra == 'test'",
"plone.app.robotframework[debug] ; extra == 'test'",
"collective.MockMailHost ; extra == 'test'",
"Products.contentmigration ; extra == 'test'",
"requests ; extra == 'test'",
"collective.elasticsearch (<4.0.0,>=3.0.3) ; extra == 'test'"
],
"requires_python": "",
"summary": "FHIR field for Plone",
"version": "2.1.0"
},
"last_serial": 5908487,
"releases": {
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "66a43caee9c8da2146eaf9b0fd5ae28b",
"sha256": "9a3a56620f888801e7650140a2492a685e1a2545daf0e082bccb84734ea7beea"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "66a43caee9c8da2146eaf9b0fd5ae28b",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 315996,
"upload_time": "2019-01-18T17:35:52",
"url": "https://files.pythonhosted.org/packages/1e/86/3b65834d7b4101f596c123ba293155700320513dda877cff90684bb45551/plone.app.fhirfield-1.0.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fe59063a257cb3614537dd870f2b6083",
"sha256": "63bc93011cff9e02909f04dab9517b33637f8e9d1f742a46c8ef6a68e52d1590"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "fe59063a257cb3614537dd870f2b6083",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 208253,
"upload_time": "2019-01-18T17:35:57",
"url": "https://files.pythonhosted.org/packages/df/32/6dd7c9ee3108b19c0ba5c7961c1f4e8b6e57b4854fcb75322e92915db709/plone.app.fhirfield-1.0.0.tar.gz"
}
],
"1.0.0a1": [
{
"comment_text": "",
"digests": {
"md5": "6c9b10061d74e5b6a6b090f170eb4049",
"sha256": "e366374bd817904562a495759fc94e07818a2e50ec2e41a3a2bd7949def8966c"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a1.tar.gz",
"has_sig": false,
"md5_digest": "6c9b10061d74e5b6a6b090f170eb4049",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 28343,
"upload_time": "2017-12-05T15:23:56",
"url": "https://files.pythonhosted.org/packages/66/91/1d1ed1b95ff68918862a0ef51a117ac4ee7e6d0ce1041cad2370b5ade47d/plone.app.fhirfield-1.0.0a1.tar.gz"
}
],
"1.0.0a10": [
{
"comment_text": "",
"digests": {
"md5": "e84ab156181c2552786511e27662abf9",
"sha256": "ec13185697950d0560ff184c7554235b729d89c42b132a28f4045f98780d4f91"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a10.tar.gz",
"has_sig": false,
"md5_digest": "e84ab156181c2552786511e27662abf9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 35816,
"upload_time": "2018-03-12T17:46:41",
"url": "https://files.pythonhosted.org/packages/ff/06/356ae1f3e82d93d403f53848768ec307001998c3cb3c5129517426c8f568/plone.app.fhirfield-1.0.0a10.tar.gz"
}
],
"1.0.0a2": [
{
"comment_text": "",
"digests": {
"md5": "1583bb85892b278c54bbb24d053e6272",
"sha256": "9b6552cf315a308ab6e353c85341de77b46623dcf703541cd867cf2cc7173aa3"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a2.tar.gz",
"has_sig": false,
"md5_digest": "1583bb85892b278c54bbb24d053e6272",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 30019,
"upload_time": "2017-12-10T18:09:02",
"url": "https://files.pythonhosted.org/packages/c2/bc/8648bef3e2a4933c3fef5abfb6a6ca6d49136502e549391426008816700e/plone.app.fhirfield-1.0.0a2.tar.gz"
}
],
"1.0.0a3": [
{
"comment_text": "",
"digests": {
"md5": "05680a27da6b6c126577f20a4bee00d2",
"sha256": "32a142d24567914b139ae379cd40b52409e5bb7a9ad4b21cd90fa5a7a31499a8"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a3.tar.gz",
"has_sig": false,
"md5_digest": "05680a27da6b6c126577f20a4bee00d2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 32997,
"upload_time": "2017-12-22T16:36:57",
"url": "https://files.pythonhosted.org/packages/71/d4/ad8a3f312b27bc6fc68713b2ed1488a275a13110aff0d85c52880bfaebf6/plone.app.fhirfield-1.0.0a3.tar.gz"
}
],
"1.0.0a4": [
{
"comment_text": "",
"digests": {
"md5": "63c7fa9de690de508a39890d0c0ed0fa",
"sha256": "7e0432970be510669c839f63ead4c7032c92456cf08221eb3305ff2af3f3c1e9"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a4.tar.gz",
"has_sig": false,
"md5_digest": "63c7fa9de690de508a39890d0c0ed0fa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 33276,
"upload_time": "2018-01-14T11:37:01",
"url": "https://files.pythonhosted.org/packages/9d/42/fd2850ebbcdc00c6f9aa9c5d0c3b9e8c627890ba0bd6635b58b644bb9705/plone.app.fhirfield-1.0.0a4.tar.gz"
}
],
"1.0.0a5": [
{
"comment_text": "",
"digests": {
"md5": "c2df6a397abdcf8fb7e7bbba889a81ac",
"sha256": "e9ceb593101671f4f9472a193d32e40402be81c4f01af74da62683eab700cef5"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a5.tar.gz",
"has_sig": false,
"md5_digest": "c2df6a397abdcf8fb7e7bbba889a81ac",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 33350,
"upload_time": "2018-01-14T14:21:41",
"url": "https://files.pythonhosted.org/packages/53/b4/afc15f1aabeb0fda7d158e25a11586f045e4ca4af6c27359c795e16c4201/plone.app.fhirfield-1.0.0a5.tar.gz"
}
],
"1.0.0a6": [
{
"comment_text": "",
"digests": {
"md5": "f2ba4e5518d543460ce674fc9329ce69",
"sha256": "8b49e0c98d4df09eac1fbc7c0a8cae0bab7f4dc1d4b7230ccef22a9e4c4062f8"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a6.tar.gz",
"has_sig": false,
"md5_digest": "f2ba4e5518d543460ce674fc9329ce69",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 33381,
"upload_time": "2018-01-14T14:41:29",
"url": "https://files.pythonhosted.org/packages/21/97/addde87b3415cfe21b071383ef26f89e6cdd049bd286add0dbf5b6a5eb70/plone.app.fhirfield-1.0.0a6.tar.gz"
}
],
"1.0.0a7": [
{
"comment_text": "",
"digests": {
"md5": "f1efc09872a646f535d70aba0497fe08",
"sha256": "5f848ca9d7f81625221a05a6047ffc6b4529a6beb74f1e1e6c1dfdbec85a5ccb"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a7.tar.gz",
"has_sig": false,
"md5_digest": "f1efc09872a646f535d70aba0497fe08",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 33736,
"upload_time": "2018-01-21T19:07:18",
"url": "https://files.pythonhosted.org/packages/a5/97/e5976f02e42222202b2c0ea817d55f0ffb4d24ef33391d8d7065926a34b8/plone.app.fhirfield-1.0.0a7.tar.gz"
}
],
"1.0.0a8": [
{
"comment_text": "",
"digests": {
"md5": "8ee609a5225d0708e665bea9ea0b016d",
"sha256": "3cf01cdf72812d2b8f88d29ae79ad75ebcea9626650ae3f86855abcd7f459b32"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a8.tar.gz",
"has_sig": false,
"md5_digest": "8ee609a5225d0708e665bea9ea0b016d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 34008,
"upload_time": "2018-01-22T18:00:22",
"url": "https://files.pythonhosted.org/packages/58/18/8b53257db3c4bffc511e7ff598cc7c408c7c1b50435a271335941330b99c/plone.app.fhirfield-1.0.0a8.tar.gz"
}
],
"1.0.0a9": [
{
"comment_text": "",
"digests": {
"md5": "f1dba704e74be3bbc95541fba7e56e32",
"sha256": "18d6681cc2d72143a72c391e3790bf8b794a00900be8d700279bf7c0f6c212ea"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0a9.tar.gz",
"has_sig": false,
"md5_digest": "f1dba704e74be3bbc95541fba7e56e32",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 33999,
"upload_time": "2018-03-08T07:24:49",
"url": "https://files.pythonhosted.org/packages/51/d5/8b02bf4fc8e6a386c483d7df40add608f5bf5f05724a942f6511beae551b/plone.app.fhirfield-1.0.0a9.tar.gz"
}
],
"1.0.0b1": [
{
"comment_text": "",
"digests": {
"md5": "e643463fc606e6816e04f4ffe329462e",
"sha256": "c73296de954939dd10f852e8e7aecdcdc69c2f58cd1fcaa3e72d3025aa9089a6"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0b1.tar.gz",
"has_sig": false,
"md5_digest": "e643463fc606e6816e04f4ffe329462e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 37284,
"upload_time": "2018-03-17T16:59:52",
"url": "https://files.pythonhosted.org/packages/16/e4/eb6a38a6d0e8c74196e2274a4fe7ada405fb064e1ef53ff7c35253c7017b/plone.app.fhirfield-1.0.0b1.tar.gz"
}
],
"1.0.0b2": [
{
"comment_text": "",
"digests": {
"md5": "e3d86a59c481082b0091d2f7be5d70b1",
"sha256": "e3c65c63966198abb1347be57b52998b4e89776b33761afacb30f80735fd3747"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0b2.tar.gz",
"has_sig": false,
"md5_digest": "e3d86a59c481082b0091d2f7be5d70b1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 109746,
"upload_time": "2018-07-29T20:05:46",
"url": "https://files.pythonhosted.org/packages/4d/67/477d3efa197747f30471fb0130eeec6e8f698c9a6f395b06d5ad34cdb832/plone.app.fhirfield-1.0.0b2.tar.gz"
}
],
"1.0.0b3": [
{
"comment_text": "",
"digests": {
"md5": "a94c68e2a6b0e6bb4d554e8c5a440653",
"sha256": "dfb7428eca41d47ae649302d2651f4c135b555ff0c68beccb92adf08ee2caca3"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0b3.tar.gz",
"has_sig": false,
"md5_digest": "a94c68e2a6b0e6bb4d554e8c5a440653",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 109804,
"upload_time": "2018-07-30T11:15:33",
"url": "https://files.pythonhosted.org/packages/35/34/86fd28a53a15386343bc60379966f0cdb6f11c6e1068607c375ea6f913df/plone.app.fhirfield-1.0.0b3.tar.gz"
}
],
"1.0.0b4": [
{
"comment_text": "",
"digests": {
"md5": "22a8e9d434359fd3c70ef339d4159650",
"sha256": "2957cf16a2b491efb26d5416e311121871e2e643601e2f4c5444bd0e1078767f"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0b4.tar.gz",
"has_sig": false,
"md5_digest": "22a8e9d434359fd3c70ef339d4159650",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 110074,
"upload_time": "2018-07-31T22:30:52",
"url": "https://files.pythonhosted.org/packages/f5/d9/68ea2c766b323c10f679cefaa28ce1e53b24d1254d0fdfc4a36184097bc4/plone.app.fhirfield-1.0.0b4.tar.gz"
}
],
"1.0.0b5": [
{
"comment_text": "",
"digests": {
"md5": "e0d16379e926feabc1f6fb5a086307e7",
"sha256": "3614f1ce8e35047ad204fb539a961efc19a8aa66fbc4534974bb1de050e50eba"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0b5.tar.gz",
"has_sig": false,
"md5_digest": "e0d16379e926feabc1f6fb5a086307e7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 113683,
"upload_time": "2018-08-03T16:53:47",
"url": "https://files.pythonhosted.org/packages/59/12/078c1351252ff5fc5eacafc4cdf20df5a9d92353b33bef51ddf132f485a5/plone.app.fhirfield-1.0.0b5.tar.gz"
}
],
"1.0.0b6": [
{
"comment_text": "",
"digests": {
"md5": "e82884f305a40a3498509d7167da5940",
"sha256": "ee72e8eefb2d5049c990c49d7f2e37812a6b960593fa6b3079838ef89b487cba"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0b6.tar.gz",
"has_sig": false,
"md5_digest": "e82884f305a40a3498509d7167da5940",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 114935,
"upload_time": "2018-08-04T11:17:23",
"url": "https://files.pythonhosted.org/packages/66/6d/0d152982fa468ecbe3715e4cfc757cfab37f5aba7ab42a9d76ccf0fe3eae/plone.app.fhirfield-1.0.0b6.tar.gz"
}
],
"1.0.0b7": [
{
"comment_text": "",
"digests": {
"md5": "4f74cf43e1b288c1720d36afe9404887",
"sha256": "ea608491426959ef18908dd16fd0eb836560f3cf2c977dd7aec5412f73324286"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0b7-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4f74cf43e1b288c1720d36afe9404887",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 225619,
"upload_time": "2018-08-10T09:52:50",
"url": "https://files.pythonhosted.org/packages/bd/70/244f92ea6c375cc636ef47679ddd92d7bfcfa50bea40c8e8be90e22ed9af/plone.app.fhirfield-1.0.0b7-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b27296d2abfb24f2f6c6a538bb94aecc",
"sha256": "8e7cc734888e3371b3f1cde121efcfe22761bab2865eb601934688ccdd08123f"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0b7.tar.gz",
"has_sig": false,
"md5_digest": "b27296d2abfb24f2f6c6a538bb94aecc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 171542,
"upload_time": "2018-08-10T09:52:54",
"url": "https://files.pythonhosted.org/packages/d7/3b/58b4ddea7ebd555ce5935001804621383d5131ef7c570f1b5ec43c5144ba/plone.app.fhirfield-1.0.0b7.tar.gz"
}
],
"1.0.0rc1": [
{
"comment_text": "",
"digests": {
"md5": "a6034314cc5e560384ae3e66e310111b",
"sha256": "a950346e02ca2dad6f9fd8319bf83bf7d1a5b72fe3e91a406d51566691c76359"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0rc1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a6034314cc5e560384ae3e66e310111b",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 291733,
"upload_time": "2018-08-27T10:28:33",
"url": "https://files.pythonhosted.org/packages/6f/9a/2bdd1992fbd63cc658ca0f5987ca1ede0bf417bb7ba8d5546ef9b87e1588/plone.app.fhirfield-1.0.0rc1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "37ece488d1af035179decdb79da55855",
"sha256": "c82565f9c7b9368ccd6bfd97b401e79205f18e145d331d51b14126c86d35d268"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0rc1.tar.gz",
"has_sig": false,
"md5_digest": "37ece488d1af035179decdb79da55855",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 191215,
"upload_time": "2018-08-27T10:28:38",
"url": "https://files.pythonhosted.org/packages/8c/e6/57a9e4ffd57199cdcbc02a9c747dab42abeb937a9928bfc9c2def3b8d017/plone.app.fhirfield-1.0.0rc1.tar.gz"
}
],
"1.0.0rc2": [
{
"comment_text": "",
"digests": {
"md5": "effd0c33a433bbe713dd7a1e43fa4e78",
"sha256": "74cddad139e15c9c28d96618e36c3853a45e88115829c7b297fcfd0fd09b0fd6"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0rc2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "effd0c33a433bbe713dd7a1e43fa4e78",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 292055,
"upload_time": "2018-08-29T18:40:35",
"url": "https://files.pythonhosted.org/packages/e4/d5/df81e68e1586ccae0c33428c09ccb34c353d2f89ee6c6aed1eaabe098d79/plone.app.fhirfield-1.0.0rc2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a647660761a52c1d2b188301d14e19e8",
"sha256": "93ee48e437570f8319ac9684887d252c605da656af1a362b83bdcc0c82dd76c1"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0rc2.tar.gz",
"has_sig": false,
"md5_digest": "a647660761a52c1d2b188301d14e19e8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 191674,
"upload_time": "2018-08-29T18:40:45",
"url": "https://files.pythonhosted.org/packages/81/17/cf673b4eff8f2ac848d7a5cd881d86b77e3e7218ca8fb61e3b2ede2ae2e8/plone.app.fhirfield-1.0.0rc2.tar.gz"
}
],
"1.0.0rc3": [
{
"comment_text": "",
"digests": {
"md5": "cd565cd5667d0718f658db5a6fd5c077",
"sha256": "b40f0566ff6c60fbcc1865e8458fd74eb7be7f60a9b5c2ec7e99843862a9e870"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0rc3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "cd565cd5667d0718f658db5a6fd5c077",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 294308,
"upload_time": "2018-09-22T20:12:01",
"url": "https://files.pythonhosted.org/packages/87/90/8eab500d076cf88a91d5bd330d5795a92a30c4e452ccd577414d2b6e78ba/plone.app.fhirfield-1.0.0rc3-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "eaf53999b200c64bdeca9d5fff536031",
"sha256": "6c211edc7d9029742cd9d34f13329c155ae5419b31c0e5ca8859015d77c45ab2"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0rc3.tar.gz",
"has_sig": false,
"md5_digest": "eaf53999b200c64bdeca9d5fff536031",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 193157,
"upload_time": "2018-09-22T20:12:06",
"url": "https://files.pythonhosted.org/packages/f0/fe/a38d5dae6897120dea1e19376834a0a1a2b2a9ddae70a5e311b830149746/plone.app.fhirfield-1.0.0rc3.tar.gz"
}
],
"1.0.0rc4": [
{
"comment_text": "",
"digests": {
"md5": "bb2aa06566947c0732251eccf9668e63",
"sha256": "a13a33500908688c28f09715df90137f64e924273e4e774302e1e203a4f5f562"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0rc4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "bb2aa06566947c0732251eccf9668e63",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 309814,
"upload_time": "2018-10-25T06:10:33",
"url": "https://files.pythonhosted.org/packages/70/d8/ca26359e0dba0c55c8e60048687fd2d19248c13d5358499482bcc3915b35/plone.app.fhirfield-1.0.0rc4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a62ef1817a3bb46e1225968738dfda7b",
"sha256": "229330a511b43afe2e632aeee8aac7c546b7435a436d96c478196eb22ee8458b"
},
"downloads": -1,
"filename": "plone.app.fhirfield-1.0.0rc4.tar.gz",
"has_sig": false,
"md5_digest": "a62ef1817a3bb46e1225968738dfda7b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 201285,
"upload_time": "2018-10-25T06:10:36",
"url": "https://files.pythonhosted.org/packages/11/e1/f5ca1f42a843013174605bda2a00ba6fd0a3d6f6d5a56e2490802dc7fd6d/plone.app.fhirfield-1.0.0rc4.tar.gz"
}
],
"2.0.0": [
{
"comment_text": "",
"digests": {
"md5": "a19427b5397bd00a17bbbb7ec16fab1f",
"sha256": "6b8099127ab677aaa7debf22ed621daabc040f53f7dcc40654830081c492c146"
},
"downloads": -1,
"filename": "plone.app.fhirfield-2.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a19427b5397bd00a17bbbb7ec16fab1f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 321339,
"upload_time": "2019-05-18T08:26:31",
"url": "https://files.pythonhosted.org/packages/62/d3/c6099fe61512b5dddb6bd023729a966125299ee51ebb5e8c8e97c23e5b39/plone.app.fhirfield-2.0.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1e27e3f64a7d7b4a14ab484b296b6859",
"sha256": "28975350fdd60d1f235c30cc2897d680076b3a615bf348f33a4de3c49e8cea84"
},
"downloads": -1,
"filename": "plone.app.fhirfield-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "1e27e3f64a7d7b4a14ab484b296b6859",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 212565,
"upload_time": "2019-05-18T08:26:34",
"url": "https://files.pythonhosted.org/packages/95/71/bf6baf6d4753f4ce51f54a25ba00482fbc1cae539375c890a7b3b73af295/plone.app.fhirfield-2.0.0.tar.gz"
}
],
"2.1.0": [
{
"comment_text": "",
"digests": {
"md5": "5a93943542d5c63880fbc0da0f1212c3",
"sha256": "27d14d4ebffcb5bded1bc40845eb4cbbb099a4a46513e4cdba3a265e2266af06"
},
"downloads": -1,
"filename": "plone.app.fhirfield-2.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "5a93943542d5c63880fbc0da0f1212c3",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 321527,
"upload_time": "2019-08-20T12:50:19",
"url": "https://files.pythonhosted.org/packages/94/16/79c7fac6dcc1e1a075a9efdc694a31a4ad14cc735476ef5016fc098f06e4/plone.app.fhirfield-2.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "47d61733098fa70a89bb5d8eba227d63",
"sha256": "314a232ca927571e9621b257f8d3bbfd3f7f9e538f5764385b9fb6259d9fa436"
},
"downloads": -1,
"filename": "plone.app.fhirfield-2.1.0.tar.gz",
"has_sig": false,
"md5_digest": "47d61733098fa70a89bb5d8eba227d63",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 215955,
"upload_time": "2019-08-20T12:50:24",
"url": "https://files.pythonhosted.org/packages/ca/c2/4b2f8f1bc69a87ddc27f992825112a6f220ac800b39b41ab07a5a7e16e77/plone.app.fhirfield-2.1.0.tar.gz"
}
],
"3.0.0b1": [
{
"comment_text": "",
"digests": {
"md5": "63d405c2d74d98aca516282d33334b44",
"sha256": "2c2ca3d93f8d2bb65b4b9875b517502a1c6103a39bf4b35169573d012f13e708"
},
"downloads": -1,
"filename": "plone.app.fhirfield-3.0.0b1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "63d405c2d74d98aca516282d33334b44",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 327365,
"upload_time": "2019-09-30T19:03:55",
"url": "https://files.pythonhosted.org/packages/6d/50/10f75008c8657ef946aff0b117e25b35ff1249d9f752db72a2bade8a5deb/plone.app.fhirfield-3.0.0b1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2719f27a27a6844d2df12f8bef83c1ef",
"sha256": "50fb6b0e8d507e08c54a295f7f87f7ae0f78f6822cb00c25d9bf48783a1253d0"
},
"downloads": -1,
"filename": "plone.app.fhirfield-3.0.0b1.tar.gz",
"has_sig": false,
"md5_digest": "2719f27a27a6844d2df12f8bef83c1ef",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 221155,
"upload_time": "2019-09-30T19:03:58",
"url": "https://files.pythonhosted.org/packages/81/f9/7ad4dadf70972c3f9de87675f3bef376cebbc16a3724295992cf2f2d2707/plone.app.fhirfield-3.0.0b1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "5a93943542d5c63880fbc0da0f1212c3",
"sha256": "27d14d4ebffcb5bded1bc40845eb4cbbb099a4a46513e4cdba3a265e2266af06"
},
"downloads": -1,
"filename": "plone.app.fhirfield-2.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "5a93943542d5c63880fbc0da0f1212c3",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 321527,
"upload_time": "2019-08-20T12:50:19",
"url": "https://files.pythonhosted.org/packages/94/16/79c7fac6dcc1e1a075a9efdc694a31a4ad14cc735476ef5016fc098f06e4/plone.app.fhirfield-2.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "47d61733098fa70a89bb5d8eba227d63",
"sha256": "314a232ca927571e9621b257f8d3bbfd3f7f9e538f5764385b9fb6259d9fa436"
},
"downloads": -1,
"filename": "plone.app.fhirfield-2.1.0.tar.gz",
"has_sig": false,
"md5_digest": "47d61733098fa70a89bb5d8eba227d63",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 215955,
"upload_time": "2019-08-20T12:50:24",
"url": "https://files.pythonhosted.org/packages/ca/c2/4b2f8f1bc69a87ddc27f992825112a6f220ac800b39b41ab07a5a7e16e77/plone.app.fhirfield-2.1.0.tar.gz"
}
]
}