def create(self, request, **kwargs): # actually saves the pathway pathway = Pathway.get(self.name)() data = _get_request_data(request) before_patient = None before_episode = None if self.episode_id: before_episode = Episode.objects.get(id=self.episode_id) if self.patient_id: before_patient = Patient.objects.get(id=self.patient_id) patient, episode = pathway.save(data, user=request.user, patient=before_patient, episode=before_episode) redirect = pathway.redirect_url(user=request.user, patient=patient, episode=episode) episode_id = None if episode: episode_id = episode.id return json_response({ "episode_id": episode_id, "patient_id": patient.id, "redirect_url": redirect })
def create(self, request, **kwargs): # actually saves the pathway pathway = Pathway.get(self.name)() data = _get_request_data(request) before_patient = None before_episode = None if self.episode_id: before_episode = Episode.objects.get(id=self.episode_id) if self.patient_id: before_patient = Patient.objects.get(id=self.patient_id) patient, episode = pathway.save( data, user=request.user, patient=before_patient, episode=before_episode ) redirect = pathway.redirect_url( user=request.user, patient=patient, episode=episode ) episode_id = None if episode: episode_id = episode.id return json_response({ "episode_id": episode_id, "patient_id": patient.id, "redirect_url": redirect })
def create(self, request, **kwargs): pathway = Pathway.get(self.name)(episode_id=self.episode_id, patient_id=self.patient_id) data = _get_request_data(request) patient = pathway.save(data, request.user) redirect = pathway.redirect_url(patient) return Response({ "episode_id": patient.episode_set.last().id, "patient_id": patient.id, "redirect_url": redirect })
def post(self, *args, **kwargs): """ Expects PATIENT, EPISODE, TARGET """ data = _get_request_data(self.request) episode = Episode.objects.get(pk=data['episode']) current_tags = episode.get_tag_names(None) if not data['target'] in current_tags: current_tags.append(data['target']) episode.set_tag_names(current_tags, None) resp = {'ok': 'Got your referral just fine - thanks!'} return _build_json_response(resp)
def create(self, request, **kwargs): pathway = Pathway.get(self.name)( episode_id=self.episode_id, patient_id=self.patient_id ) data = _get_request_data(request) patient = pathway.save(data, request.user) redirect = pathway.redirect_url(patient) return Response({ "episode_id": patient.episode_set.last().id, "patient_id": patient.id, "redirect_url": redirect })
def post(self, *args, **kwargs): request_data = _get_request_data(self.request) page_number = 1 if "page_number" in request_data[0]: page_number = request_data[0].pop("page_number", 1) query = queries.SearchBackend( self.request.user, request_data, ) eps = query.get_patient_summaries() return _build_json_response(_add_pagination(eps, page_number))
def post(self, *args, **kwargs): """ Expects PATIENT, EPISODE, TARGET """ from opal.models import Episode data = _get_request_data(self.request) episode = Episode.objects.get(pk=data['episode']) current_tags = episode.get_tag_names(None) if not data['target'] in current_tags: current_tags.append(data['target']) episode.set_tag_names(current_tags, None) resp = {'ok': 'Got your referral just fine - thanks!'} return _build_json_response(resp)
def post(self, *args, **kwargs): request_data = _get_request_data(self.request) page_number = 1 if "page_number" in request_data[0]: page_number = request_data[0].pop("page_number", 1) query = queries.create_query( self.request.user, request_data, ) eps = query.get_patient_summaries() return _build_json_response(_add_pagination(eps, page_number))
def post(self, *args, **kwargs): if getattr(settings, 'EXTRACT_ASYNC', None): criteria = _get_request_data(self.request)['criteria'] extract_id = async_extract(self.request.user, json.loads(criteria)) return json_response({'extract_id': extract_id}) query = queries.create_query(self.request.user, json.loads(self.request.POST['criteria'])) episodes = query.get_episodes() fname = zip_archive(episodes, query.description(), self.request.user) resp = HttpResponse(open(fname, 'rb').read()) disp = 'attachment; filename="{0}extract{1}.zip"'.format( settings.OPAL_BRAND_NAME, datetime.datetime.now().isoformat()) resp['Content-Disposition'] = disp return resp
def post(self, *args, **kwargs): request_data = _get_request_data(self.request) page_number = 1 if not request_data: return json_response(dict(error="No search criteria provied"), status_code=status.HTTP_400_BAD_REQUEST) if "page_number" in request_data[0]: page_number = request_data[0].pop("page_number", 1) query = queries.create_query( self.request.user, request_data, ) patient_summaries = query.get_patient_summaries() return json_response(_add_pagination(patient_summaries, page_number))
def post(self, *args, **kwargs): if getattr(settings, 'EXTRACT_ASYNC', None): criteria = _get_request_data(self.request)['criteria'] extract_id = async_extract( self.request.user, json.loads(criteria) ) return _build_json_response({'extract_id': extract_id}) query = queries.SearchBackend( self.request.user, json.loads(self.request.POST['criteria']) ) episodes = query.get_episodes() fname = zip_archive(episodes, query.description(), self.request.user) resp = HttpResponse(open(fname, 'rb').read()) disp = 'attachment; filename="{0}extract{1}.zip"'.format( settings.OPAL_BRAND_NAME, datetime.datetime.now().isoformat()) resp['Content-Disposition'] = disp return resp
def episode_detail_view(request, pk): try: episode = models.Episode.objects.get(pk=pk) except models.Episode.DoesNotExist: return HttpResponseNotFound() if request.method == 'GET': serialized = episode.to_dict(request.user) return _build_json_response(serialized) data = _get_request_data(request) try: pre = episode.to_dict(request.user) episode.update_from_dict(data, request.user) post = episode.to_dict(request.user) glossolalia.change(pre, post) return _build_json_response(episode.to_dict(request.user, shallow=True)) except exceptions.ConsistencyError: return _build_json_response({'error': 'Item has changed'}, 409)
def post(self, *args, **kwargs): request_data = _get_request_data(self.request) page_number = 1 if not request_data: return json_response( dict(error="No search criteria provied"), status_code=status.HTTP_400_BAD_REQUEST ) if "page_number" in request_data[0]: page_number = request_data[0].pop("page_number", 1) query = queries.create_query( self.request.user, request_data, ) patient_summaries = query.get_patient_summaries() return json_response(_add_pagination(patient_summaries, page_number))
def episode_list_and_create_view(request): if request.method == 'GET': serialised = models.Episode.objects.serialised_active(request.user) return _build_json_response(serialised) elif request.method == 'POST': data = _get_request_data(request) hospital_number = data['demographics'].get('hospital_number') if hospital_number: patient, _ = models.Patient.objects.get_or_create( demographics__hospital_number=hospital_number) else: patient = models.Patient.objects.create() patient.update_from_demographics_dict(data['demographics'], request.user) try: episode = patient.create_episode() episode_fields = models.Episode._get_fieldnames_to_serialize() episode_data = {} for fname in episode_fields: if fname in data: episode_data[fname] = data[fname] episode.update_from_dict(episode_data, request.user) except exceptions.APIError: return _build_json_response( {'error': 'Patient already has active episode'}, 400) location = episode.location_set.get() location.update_from_dict(data['location'], request.user) if 'tagging' in data: tag_names = [n for n, v in data['tagging'][0].items() if v] episode.set_tag_names(tag_names, request.user) serialised = episode.to_dict(request.user) glossolalia.admit(serialised) return _build_json_response(serialised, 201)
def post(self, *args, **kwargs): data = _get_request_data(self.request) self.filter = models.Filter(user=self.request.user) self.filter.update_from_dict(data) return _build_json_response(self.filter.to_dict())
def post(self, *args, **kwargs): data = _get_request_data(self.request) resp = {'ok': 'Got your admission just fine - thanks!'} return _build_json_response(resp)
def put(self, *args, **kwargs): data = _get_request_data(self.request) self.filter.update_from_dict(data) return _build_json_response(self.filter.to_dict())