def imgData_json(request, imageId, conn=None, **kwargs): image = conn.getObject("Image", imageId) if image is None: raise Http404("Image not found") rv = imageMarshal(image) sizeT = image.getSizeT() timeList = [] if sizeT > 1: params = omero.sys.ParametersI() params.addLong('pid', image.getPixelsId()) query = "from PlaneInfo as Info where"\ " Info.theZ=0 and Info.theC=0 and pixels.id=:pid" infoList = conn.getQueryService().findAllByQuery( query, params, conn.SERVICE_OPTS) timeMap = {} for info in infoList: tIndex = info.theT.getValue() time = int(info.deltaT.getValue()) timeMap[tIndex] = time for t in range(image.getSizeT()): if t in timeMap: timeList.append(timeMap[t]) rv['deltaT'] = timeList return HttpResponse(json.dumps(rv), content_type='json')
def img_data_json(request, image_id, conn=None, **kwargs): image = conn.getObject("Image", image_id) if image is None: raise Http404("Image not found") # Test if we have Units support (OMERO 5.1) px = image.getPrimaryPixels().getPhysicalSizeX() pix_size_x = str(px) # As string E.g. "0.13262 MICROMETER" units_support = " " in pix_size_x rv = imageMarshal(image) if units_support: # Add extra parameters with units data # NB ['pixel_size']['x'] will have size in MICROMETER px = image.getPrimaryPixels().getPhysicalSizeX() rv['pixel_size']['valueX'] = px.getValue() rv['pixel_size']['symbolX'] = px.getSymbol() rv['pixel_size']['unitX'] = str(px.getUnit()) py = image.getPrimaryPixels().getPhysicalSizeY() rv['pixel_size']['valueY'] = py.getValue() rv['pixel_size']['symbolY'] = py.getSymbol() rv['pixel_size']['unitY'] = str(py.getUnit()) size_t = image.getSizeT() time_list = [] if size_t > 1: time_list = get_timestamps(conn, image) rv['deltaT'] = time_list return HttpResponse(json.dumps(rv), content_type='json')
def image_data(request, image_id, conn=None, **kwargs): image = conn.getObject("Image", image_id) if image is None: return JsonResponse({"error": "Image not found"}, status=404) try: rv = imageMarshal(image) # set roi count rv['roi_count'] = image.getROICount() # Add extra parameters with units data # Note ['pixel_size']['x'] will have size in MICROMETER px = image.getPrimaryPixels().getPhysicalSizeX() if (px is not None): size = image.getPixelSizeX(True) value = format_pixel_size_with_units(size) rv['pixel_size']['unit_x'] = value[0] rv['pixel_size']['symbol_x'] = value[1] py = image.getPrimaryPixels().getPhysicalSizeY() if (py is not None): size = image.getPixelSizeY(True) value = format_pixel_size_with_units(size) rv['pixel_size']['unit_y'] = value[0] rv['pixel_size']['symbol_y'] = value[1] pz = image.getPrimaryPixels().getPhysicalSizeZ() if (pz is not None): size = image.getPixelSizeZ(True) value = format_pixel_size_with_units(size) rv['pixel_size']['unit_z'] = value[0] rv['pixel_size']['symbol_z'] = value[1] delta_t_unit_symbol = None rv['delta_t_unit_symbol'] = delta_t_unit_symbol df = "%Y-%m-%d %H:%M:%S" rv['import_date'] = image.creationEventDate().strftime(df) if image.getAcquisitionDate() is not None: rv['acquisition_date'] = image.getAcquisitionDate().strftime(df) # add available families rv['families'] = [] families = image.getFamilies().values() for fam in families: rv['families'].append(fam.getValue()) return JsonResponse(rv) except Exception as image_data_retrieval_exception: return JsonResponse({'error': repr(image_data_retrieval_exception)})
def img_data_json(request, image_id, conn=None, **kwargs): image = conn.getObject("Image", image_id) if image is None: raise Http404("Image not found") # Test if we have Units support (OMERO 5.1) px = image.getPrimaryPixels().getPhysicalSizeX() pix_size_x = str(px) # As string E.g. "0.13262 MICROMETER" units_support = " " in pix_size_x rv = imageMarshal(image) if units_support: # Add extra parameters with units data # NB ['pixel_size']['x'] will have size in MICROMETER px = image.getPrimaryPixels().getPhysicalSizeX() rv['pixel_size']['valueX'] = px.getValue() rv['pixel_size']['symbolX'] = px.getSymbol() rv['pixel_size']['unitX'] = str(px.getUnit()) py = image.getPrimaryPixels().getPhysicalSizeY() rv['pixel_size']['valueY'] = py.getValue() rv['pixel_size']['symbolY'] = py.getSymbol() rv['pixel_size']['unitY'] = str(py.getUnit()) size_t = image.getSizeT() time_list = [] if size_t > 1: params = omero.sys.ParametersI() params.addLong('pid', image.getPixelsId()) query = "from PlaneInfo as Info where"\ " Info.theZ=0 and Info.theC=0 and pixels.id=:pid" info_list = conn.getQueryService().findAllByQuery( query, params, conn.SERVICE_OPTS) timemap = {} for info in info_list: t_index = info.theT.getValue() if info.deltaT is not None: # planeInfo.deltaT gives number only (no units) # Therefore compatible with OMERO 5.0 and 5.1 delta_t = int(round(info.deltaT.getValue())) timemap[t_index] = delta_t for t in range(image.getSizeT()): if t in timemap: time_list.append(timemap[t]) rv['deltaT'] = time_list return HttpResponse(json.dumps(rv), content_type='json')
def image_data(request, image_id, conn=None, **kwargs): image = conn.getObject("Image", image_id) if image is None: return JsonResponse({"error": "Image not found"}, status=404) try: desc = image.getDescription() if len(desc) <= 0: image.setDescription('1') image.save() desc = '1' rv = imageMarshal(image) rv['isAdmin'] = conn.isAdmin() rv['curUserId'] = conn.getUserId() rv['curStep'] = int(desc) # set roi count rv['roi_count'] = image.getROICount() # Add extra parameters with units data # Note ['pixel_size']['x'] will have size in MICROMETER px = image.getPrimaryPixels().getPhysicalSizeX() if (px is not None): size = image.getPixelSizeX(True) value = format_value_with_units(size) rv['pixel_size']['unit_x'] = value[0] rv['pixel_size']['symbol_x'] = value[1] py = image.getPrimaryPixels().getPhysicalSizeY() if (py is not None): size = image.getPixelSizeY(True) value = format_value_with_units(size) rv['pixel_size']['unit_y'] = value[0] rv['pixel_size']['symbol_y'] = value[1] pz = image.getPrimaryPixels().getPhysicalSizeZ() if (pz is not None): size = image.getPixelSizeZ(True) value = format_value_with_units(size) rv['pixel_size']['unit_z'] = value[0] rv['pixel_size']['symbol_z'] = value[1] size_t = image.getSizeT() time_list = [] delta_t_unit_symbol = None if size_t > 1: params = omero.sys.ParametersI() params.addLong('pid', image.getPixelsId()) z = 0 c = 0 query = "from PlaneInfo as Info where"\ " Info.theZ=%s and Info.theC=%s and pixels.id=:pid" % (z, c) info_list = conn.getQueryService().findAllByQuery( query, params, conn.SERVICE_OPTS) timemap = {} for info in info_list: t_index = info.theT.getValue() if info.deltaT is not None: value = format_value_with_units(info.deltaT) timemap[t_index] = value[0] if delta_t_unit_symbol is None: delta_t_unit_symbol = value[1] for t in range(image.getSizeT()): if t in timemap: time_list.append(timemap[t]) rv['delta_t'] = time_list rv['delta_t_unit_symbol'] = delta_t_unit_symbol df = "%Y-%m-%d %H:%M:%S" rv['import_date'] = image.creationEventDate().strftime(df) if image.getAcquisitionDate() is not None: rv['acquisition_date'] = image.getAcquisitionDate().strftime(df) # add available families rv['families'] = [] families = image.getFamilies().values() for fam in families: rv['families'].append(fam.getValue()) # rv['perms']['canAnnotate']= True return JsonResponse(rv) except Exception as image_data_retrieval_exception: return JsonResponse({'error': repr(image_data_retrieval_exception)})
def image_data(request, image_id, conn=None, **kwargs): image = conn.getObject("Image", image_id) if image is None: return JsonResponse({"error": "Image not found"}, status=404) try: rv = imageMarshal(image) # Add extra parameters with units data # Note ['pixel_size']['x'] will have size in MICROMETER px = image.getPrimaryPixels().getPhysicalSizeX() if (px is not None): size = image.getPixelSizeX(True) value = format_value_with_units(size) rv['pixel_size']['unit_x'] = value[0] rv['pixel_size']['symbol_x'] = value[1] py = image.getPrimaryPixels().getPhysicalSizeY() if (py is not None): size = image.getPixelSizeY(True) value = format_value_with_units(size) rv['pixel_size']['unit_y'] = value[0] rv['pixel_size']['symbol_y'] = value[1] pz = image.getPrimaryPixels().getPhysicalSizeZ() if (pz is not None): size = image.getPixelSizeZ(True) value = format_value_with_units(size) rv['pixel_size']['unit_z'] = value[0] rv['pixel_size']['symbol_z'] = value[1] size_t = image.getSizeT() time_list = [] delta_t_unit_symbol = None if size_t > 1: params = omero.sys.ParametersI() params.addLong('pid', image.getPixelsId()) z = 0 c = 0 query = "from PlaneInfo as Info where"\ " Info.theZ=%s and Info.theC=%s and pixels.id=:pid" % (z, c) info_list = conn.getQueryService().findAllByQuery( query, params, conn.SERVICE_OPTS) timemap = {} for info in info_list: t_index = info.theT.getValue() if info.deltaT is not None: value = format_value_with_units(info.deltaT) timemap[t_index] = value[0] if delta_t_unit_symbol is None: delta_t_unit_symbol = value[1] for t in range(image.getSizeT()): if t in timemap: time_list.append(timemap[t]) rv['delta_t'] = time_list rv['delta_t_unit_symbol'] = delta_t_unit_symbol return JsonResponse(rv) except Exception as image_data_retrieval_exception: return JsonResponse({'error': repr(image_data_retrieval_exception)})