dbMotion Instructor Guide
Course 2
Document Control
|
Date |
Release No. |
Author |
Reviewed by |
Comments |
|
17/05/10 |
Release 1.0 |
Doron podlovski |
|
First draft |
|
16/07/17 |
Release 2.0 |
Adam Verdin |
Adam Verdin |
Second Draft- Instructor Guide |
|
|
|
|
|
|
|
|
|
|
|
|
Table of Contents
1.1.2 Adding the application server certification
1.1.3 Creating a visual studio solution for dbMotion SDK
2.1 Setting a security principal
2.2 Getting information from the dbMotion business layer
2.2.1 Creating a business command
2.2.2 Connection to the business layer
2.2.3 dbMotion business Command
List of Figures
Figure 1 - Windows command run
Figure 2 - Microsoft Management Console
Figure 4 - Certificate type selection
Figure 6 - Certification manager
Figure 7 - Path to the CER file
Figure 9 - Application configuration file
Figure 12 - minimum references requirement
Figure 13 - Additional references
The dbMotion Client SDK presents developers with tools to develop against dbMotion Core services, focusing mainly on how to search for patients and retrieve clinical data.
The following is required in order to start working with the dbMotion SDK.
The following software packages must be installed prior to installing and using the dbMotion Client
SDK:
· Microsoft Windows XP Professional, Windows Server 2003, or Windows Vista
· Microsoft .NET Framework 3.5
· Microsoft WSE 3.0
· Microsoft Visual Studio 2008 Standard or higher edition
For us to be able to communicate with the application server we must add the certification of the server to our computer certification list, to do so we will use the windows certification manager.
1. At your desktop, enter Start " Run " MMC
Figure 1 - Windows command run
2. Press “OK”
3. The MMC will be open, Press on File " Add / remove Snap-in
Figure 2 - Microsoft Management Console
4. Press add, from the appearing windows select “Certificates”
Figure 3 - Snap-in list
5. Press “Add” and select the “computers” radio button:
Figure 4 - Certificate type selection
6. Press “Next”
7. Select “Local computer” and press finish
Figure 5 - Computer select
8. Press “Close” and “OK”.
9. Select form the tree view “Personal” " “Certificates”
10. Right Click the Viewer on right hand side of the window, from the popup window select “All Tasks”" “Import”
Figure 6 - Certification manager
11. Enter a path to the relevant *.CER file.
Figure 7 - Path to the CER file
12. Press “Next”
13. Press “Finish”
14. Close the MMC.
1. Create an empty .NET solution (Console, windows form, ASP.NET).
i Note: for this hands on we will be using a console application, all though the instruction fits to all above .NET solutions.
2. Add to the new solution an application configuration file (App.config; Web.config)
· Right click the project name in the project navigator bar and select: Add " New item
Figure 8 - Add new Item
· From the appearing menu select the “Application Configuration File”
Figure 9 - Application configuration file
· Add the following sections to the new configuration file you have created:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="security" type="dbMotion.Security.Configuration.SecuritySectionGroup, dbMotion.Security, Version=<IP_ADDRESS>, Culture=neutral,PublicKeyToken=85aefa0259d3383e">
<section name="identity" type="dbMotion.Security.Configuration.IdentitySection, dbMotion.Security, Version=<IP_ADDRESS>, Culture=neutral,PublicKeyToken=85aefa0259d3383e" />
<section name="credentialSets" type="dbMotion.Security.Configuration.CredentialSetsSection, dbMotion.Security, Version=<IP_ADDRESS>, Culture=neutral,PublicKeyToken=85aefa0259d3383e" />
<section name="soapClients" type="dbMotion.Security.Configuration.SoapClientsSection, dbMotion.Security, Version=<IP_ADDRESS>, Culture=neutral,PublicKeyToken=85aefa0259d3383e" />
</sectionGroup>
</configSections>
<appSettings>
<add key="BusinessAccessService" value="net.tcp://[Application Server name]:8081/dbMotion/BusinessAccessService" />
</appSettings>
<security>
<identity principalDelegationMode="DelegateCurrentPrincipal" />
<credentialSets>
<add name="dbMotionBusinessClientTool" mode="ActiveDirectory">
<activeDirectory userName="dbvDataAccessUser" password="1qaz@@wsx"/>
</add>
</credentialSets>
<soapClients>
<securityAuthority uri="soap.tcp://[Security server name]:9000/SecurityAuthorityService" />
</soapClients>
</security>
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="dbMotionContext" type="dbMotion.DbmSystem.ServiceModel.Contexts.Configuration.DbmContextEndpointBehaviorExtensionElement, dbMotion.DbmSystem, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=85aefa0259d3383e" />
</behaviorExtensions>
</extensions>
<bindings>
<netNamedPipeBinding>
<binding name="netPipeBusinessMessage" closeTimeout="00:00:10" openTimeout="00:00:10" maxConnections="100" maxReceivedMessageSize="10000000">
<readerQuotas maxStringContentLength="10000000" maxArrayLength="10000000" />
<security mode="None" />
</binding>
</netNamedPipeBinding>
<netTcpBinding>
<binding name="netTcpBusinessMessage" closeTimeout="00:00:10" openTimeout="00:00:10" maxConnections="100" maxReceivedMessageSize="10000000">
<readerQuotas maxStringContentLength="10000000" maxArrayLength="10000000" />
<security mode="None" />
</binding>
</netTcpBinding>
<wsHttpBinding>
<binding name="wsHttpBusinessMessage" closeTimeout="00:00:10" openTimeout="00:00:10" maxReceivedMessageSize="10000000">
<readerQuotas maxStringContentLength="10000000" maxArrayLength="10000000" />
<security mode="None" />
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="dbMotionBusinessServiceBehaviour">
<dbMotionContext />
</behavior>
</endpointBehaviors>
</behaviors>
<client>
<endpoint binding="netNamedPipeBinding" bindingConfiguration="netPipeBusinessMessage" contract="dbMotion.DbmSystem.ServiceModel.IDbmService" name="net.pipeBusinessMetadataServiceClient" />
<endpoint binding="netTcpBinding" bindingConfiguration="netTcpBusinessMessage" contract="dbMotion.DbmSystem.ServiceModel.IDbmService" name="net.tcpBusinessMetadataServiceClient" />
<endpoint binding="wsHttpBinding" bindingConfiguration="wsHttpBusinessMessage" contract="dbMotion.DbmSystem.ServiceModel.IDbmService" name="httpBusinessMetadataServiceClient" />
<endpoint binding="netNamedPipeBinding" bindingConfiguration="netPipeBusinessMessage" behaviorConfiguration="dbMotionBusinessServiceBehaviour" contract="dbMotion.DbmSystem.ServiceModel.IDbmService" name="net.pipeBusinessNetPipeServiceClient" />
<endpoint binding="netTcpBinding" bindingConfiguration="netTcpBusinessMessage" behaviorConfiguration="dbMotionBusinessServiceBehaviour" contract="dbMotion.DbmSystem.ServiceModel.IDbmService" name="net.tcpBusinessNetPipeServiceClient" />
<endpoint binding="wsHttpBinding" bindingConfiguration="wsHttpBusinessMessage" behaviorConfiguration="dbMotionBusinessServiceBehaviour" contract="dbMotion.DbmSystem.ServiceModel.IDbmService" name="httpBusinessNetPipeServiceClient" />
</client>
</system.serviceModel>
</configuration>
3. Adding relevant References to the solution:
·
Right click the project name in the project navigator bar and
select: Add References
Figure 10 - Add References
· Set the path to the SDK installing folder i.e. “C:\Program Files\dbMotion\Developer SDK\Binaries”.
Figure 11 – SDK References
· The SDK references are divided to groups (folders). We will add only the relevant binaries to our solution.
Figure 12 - minimum references requirement
To start using the SDK the initial class will be something like this:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.Text;
using System.Data;
using System.Security;
using System.Security.Authentication;
using System.IO;
using dbMotion.DbmSystem.BAC;
using dbMotion.Security;
using dbMotion.Security.Authorization;
using dbMotion.Security.Authentication;
namespace SDKHandsOn
{
class Program
{
static void Main(string[] args)
{
// Your code
}
}
}
1. The security principal is a dbMotion object that defines all of the user rights within the dbMotion system. Without the a security principal it`s imposable to work with the system!
2. To create a security principal we first have to authenticate our user under the systems (Active directory, SQL, etc):
ActiveDirectoryAuthenticationRequest adRequest =
new ActiveDirectoryAuthenticationRequest("UserName", "Password");
// creating the requests list
List<AuthenticationRequest> requestList =
new List<AuthenticationRequest>();
requestList.Add(adRequest);
The code above is using an ActiveDirectory authentication Request object, we can use the "SQL Authentication Request” object just the same.
SqlAuthenticationRequest sqlRequest = new SqlAuthenticationRequest ("UserName", "Password");
// creating the requests list
List<AuthenticationRequest> requestList =
new List<AuthenticationRequest>();
requestList.Add(adRequest);
3. After the user has been authenticate, we need to create a user principal
DbmPrincipal principal = DbmSecurityManager.ServiceSoapClient.AuthenticateUser(requestList);
4. The next step is to make it our current session principal
dbMotion.Security.DbmSecurityManager.CurrentPrincipal = principal;
Or, when using a Web project:
HttpContext.Current.Session[SessionName] = principal;
Create a simple client that authenticates to the dbMotion system and greets the user after a successful login.
i Note: Try to write it yourself and use this sample as a reference.
public static bool Authenticating(string userName,string password)
{
ActiveDirectoryAuthenticationRequest adRequest = new
ActiveDirectoryAuthenticationRequest(userName, password);
if (adRequest != null)
{
// creating the requests list
List<AuthenticationRequest> requestList =
new List<AuthenticationRequest>();
requestList.Add(adRequest);
// authenticating
DbmPrincipal principal =
DbmSecurityManager.ServiceSoapClient.AuthenticateUser(
requestList);
dbMotion.Security.DbmSecurityManager.CurrentPrincipal =
principal;
return true;
}
return false;
}
static void Main(string[] args)
{
Console.WriteLine("Welcome to dbMotion SDK console\n\n");
Console.Write("Entet Usermae: ");
string userName = Console.ReadLine();
Console.Write("Entet Password: ");
ConsoleColor oldFore = Console.ForegroundColor;
Console.ForegroundColor = Console.BackgroundColor;
string password = Console.ReadLine();
Console.ForegroundColor = oldFore;
if (Authenticating(userName, password))
{
Console.WriteLine {0}, you are now logged in ",
dbMotion.Security.DbmSecurityManager.CurrentPrincipal.
Identity.Name);
}
}
The main goal of the dbMotion Business Layer is to expose aggregated clinical data from various data repositories throughout the organization and provide an abstraction of the details regarding how the data was collected and harmonized.
In order to execute a business layer command, we have to supply all mandatory parameters.
· Note: The list of relevant parameters can be found in the dbMotion SDK user guide.
A general use of the”DbmParameter” object :
string parameterName;
object value; //Value could be any type of object
DbmParameter CommandParameter = new DbmParameter(parameterName, value);
The filtering instruction is applicable to every business method which returns multiple acts. The filter expression is applied only on the main table (i.e. the clinical act table, e.g. the Encounter table in “GetEncountersList” output schema).
The filter expression is based on the standard ADO.NET dataset SQL filter instruction, and has the same syntax. All the fields in the expression must be part of the main table.
// creating the filter expression
string filterExpression = "Calc_MedicalStaffName IN ('John Doe', 'Jane
Doe')"
+ "AND Calc_Text like '%discharge%'";
// creating the filter instruction parameter
DbmParameter filterParameter = new DbmParameter();
filterParameter.ParameterName = "FilterInstruction";
filterParameter.Value = filterExpression;
The paging instruction is applicable in every business method which returns multiple acts, except for the Summary domain which is intended to bring small amount of data which represents the most updated patient’s medical state by aggregating latest clinical acts of various types.
The paging instruction enables limiting the amount of data transferred by the business to the client.
Clients can provide the desired number of records to be returned. This number will apply on the clinical act records (i.e. records in the main table) after applying specified filter operations.
Providing the page number in a method will result in receiving the desired page after applying filter and sorting operations. The business layer uses its cache to provide requested output in a fast manner.
// creating the paging instruction parameters - we want to get the second
page
// from a result set that will be broken up into pages of 10 records per
page
DbmParameter pageNumber = new DbmParameter("PageNumber", 2);
DbmParameter pageSize = new DbmParameter("PageSize", 10);
dbMotion provides the sorting data operation. The sorting operation is applicable in every business method which returns multiple acts.
Except the Summary domain which has an overloading of the sorting parameter. The sorting is done on one of the fields in the main table (i.e. the clinical act table, e.g. the Encounter table in “GetEncountersList” output schema).
The default sorting logic in the clinical domains is returning clinical acts sorted by the effective time start descending. Some business methods overload this default behavior; in such cases the custom sorting logic will be depicted in the business method’s description.
// creating the sorting instruction parameter
string sortingExpression = "Cal_MedicalStaffName DESC";
DbmParameter sortInstruction = new DbmParameter("SortInstruction",
sortingExpression);
The time range filter instruction provides two methods for defining the time filter, either by a pair of
from and to date values, or by a single from date, represented as a pair of time unit and values
parameters:
· From/To dates
// creating the time range instruction parameters
DbmParameter fromDate = new DbmParameter("FromDttm",
DateTime.Now.Subtract(TimeSpan.FromDays(10)));
DbmParameter toDate = new DbmParameter("ToDttm",
DateTime.Now.Subtract(TimeSpan.FromDays(5)));
· Time units
/* Possible time units:
Year = 0,
Month = 1
Week = 2
Day = 3
None = 4 */
DbmParameter timeUnit = new DbmParameter("TimeUnit", 3); //Day
DbmParameter unitAmount = new DbmParameter("UnitAmount", 10);
// 10 Days
The dbMotion Business Client provides an ADO.NET like
experience in regards to accessing data provided by the Business Layer.
The client exposes a similar object model to ADO.NET, providing a connection
class that represents the actual connection that will be established between
the client and the Business Layer.
The first step to retrieving data from the Business Layer is establishing a valid connection to a server hosting the dbMotion Business Layer.
string connectionString = "Provider=dbMotionFramework2.0;
Uri=soap.tcp://[Application server name]:[port]/dbMotion/BusinessAccessService;
BusinessDomainName=Conditions; SessionTimeout=3600";
// method #1 - manually initializing the connection
DbmConnection conn = new dbMotion.DbmSystem.BAC.DbmConnection();
conn.BusinessDomainName = " BusinessDomainName ";
conn.Uri = "soap.tcp://[Application server name]:[port]";
// method #2 - initializing the connection using a connection string
conn = new DbmConnection(connectionString);
conn.Open();
/* Executing a command */
conn.Close();// closing the connection
Before we can execute a command we need to define a command object.
string commandString = " AspectName::Execute MethodName";
DbmCommand cmd = new DbmCommand(commandString);
The command object must get all mandatory parameters in order to run.
cmd.CommandParameters.Add(parametrObject);
To execute a command we need to add to the “DbmConnection” object all relevant information (such as parameters etc), like so:
///////////////////////////////Open a connection ///////////////////////////
string BusinessAccessService =
"net.tcp://[ServerName]:[Port]/dbMotion/BusinessAccessService";
string BDname = "System";
int timeout = 3600;
string connectionString = string.Format(
"Provider=dbMotionFramework2.0; Uri={0}; BusinessDomainName={1};
SessionTimeout={2}",BusinessAccessService, BDname, timeout.ToString());
DbmConnection conn = new DbmConnection(connectionString);
///////////////////////////////Create a parameter //////////////////////////
PersonSearchCriteria SQ = new PersonIdentification.PersonSearchCriteria();
SQ.AddIdentifier("FNAME", "Patient");
SQ.AddIdentifier("GNAME", "One");
SQ.AddMatchCondition("MRN_SysSearch", "False");
DbmParameter SearchQuery = new DbmParameter("SearchQuery", SQ);
///////////////////////////////Set a command ///////////////////////////////
string commandString = "PatientEntrance::Execute PatientSearchAsDS";
// AspectName:: Execute MethodName
DbmCommand cmd = new DbmCommand(commandString);
cmd.CommandParameters.Add(SearchQuery);
///////////////////////////////Execute Command /////////////////////////////
cmd.DbmConnection = conn;
DataSet ds = new DataSet();
// opening the connection
conn.Open();
// Execute Command
ds = cmd.ExecuteDataSet();
// closing the connection
conn.Close();
Create a simple client that authenticates to the dbMotion system and search for a patient using his/hers MRN ID (Refer the dbMotion SDK user guide for more information).
The only differents between the examples above is the parameter list we are using:
// Exercise 2.2.4
PersonSearchCriteria SQ = new PersonIdentification.PersonSearchCriteria();
string MRN_SYS = "2.16.840.1.1138<IP_ADDRESS>.<IP_ADDRESS>.8.2";
string MRN_ID = "167580070";
SQ.AddIdentifier("MRN_ID", MRN_ID);
SQ.AddIdentifier("MRN_SYS", MRN_SYS);
SQ.AddMatchCondition("MRN_SysSearch", "True");
DbmParameter SearchQuery = new DbmParameter("SearchQuery", SQ);
The dbMotion VIA client provides developers with the ability to perform person identification
operations through dbMotion VIA Service.
The majority of business methods are requiring a “PersonIdentity” object, we can use the VIA client to search for patient and receive the object needed.
First we need to add some references to our project:
Figure 13 - Additional references
To our source will have to add the following:
using dbMotion.DbmSystem;
// import the Person Identification relevant namespaces
using dbMotion.PersonIdentification;
// import VIA Metadata namespaces
using dbMotion.PersonIdentification.Client;
One of the main features of VIA Service is to enable a client to search for person identifiers using the basic information known about that person: name, gender, address, etc.
First, will have to create a VIA client instance:
string VIA_Service_URI = "soap.tcp://[ServerName]:[Port]/IdentificationService";
// Create an instance of VIA Client - giving the service URI
IdentificationServicesClient client = new IdentificationServicesClient(VIA_Service_URI);
Second, we have to create a search query with the patient’s demographics:
// Prepare Search input parameter - Search Criteria
PersonSearchCriteria searchCriteria = new PersonSearchCriteria();
// Add familyName and givenName to Search Criteria identifiers
searchCriteria.AddIdentifier("FNAME", "PatientOne");
searchCriteria.AddIdentifier("GNAME", "Releasea");
The final step is running the request and saving the information:
// Execute search through client and keep the result
VirtualPersonIndexCollection searchResult =
client.SearchPerson(searchCriteria);
When we need to find a specific patient and the results must be Injective, we will use this method:
//Prepare Match input parameter - person index
//sourceSystem – The relevant system the patient is on
//sourceIndex – The Injective id of the patient
//MPI_Provider_Name – MPI provider name (i.e. UPMC, RHIO, etc)
Index knownIndex = new Index("2.16.840.1.1138<IP_ADDRESS>.<IP_ADDRESS>.8.2", "167580070", "UPMC");
// Execute match through client and keep the result
PersonIndex matchResult = client.MatchIndex(knownIndex);
1. Search for a patient using the VIA client (demographic search).
2. Save the patient index and use it to retrieve the patient`s substance administration information in the last three years.
// Exercise 2.3.3
static void Main(string[] args)
{
PersonIdentity PI = null;
string VIA_Service_URI =
"soap.tcp://[ApplicationServerName]:[Port]/IdentificationService";
// Create an instance of VIA Client - giving the service URI
IdentificationServicesClient client = new IdentificationServicesClient(VIA_Service_URI);
// Prepare Search input parameter - Search Criteria
PersonSearchCriteria searchCriteria = new PersonSearchCriteria();
// Add familyName and givenName to Search Criteria identifiers
searchCriteria.AddIdentifier("FNAME", "PatientOne");
searchCriteria.AddIdentifier("GNAME", "Releasea");
try
{
// Execute search through client and keep the result
VirtualPersonIndexCollection searchResult = client.SearchPerson(searchCriteria);
PI = searchResult[0].ReorganizeToPersonIdentity();
}
catch (PersonIdentificationException ex){
throw ex; // Catch and handle the exception here}
if (PI != null)
{
Authenticating();// From Exercise 2.1.1
///////////////////////////////Open a connection////////////////////////////
string BusinessAccessService =
"net.tcp://[ApplicationServerName]:[Port]/dbMotion/BusinessAccessService";
string BDname = "Medications";
int timeout = 3600;
string connectionString = string.Format( "Provider=dbMotionFramework2.0; Uri={0}; BusinessDomainName={1}; SessionTimeout={2}",BusinessAccessService, BDname, timeout.ToString());
DbmConnection conn = new DbmConnection(connectionString);
//////////////////////////////Creating parameters //////////////////////////
DbmParameter PersonIdentity = new DbmParameter("PersonIdentity", PI);
DbmParameter timeUnit = new DbmParameter("TimeUnit", (byte)0);
DbmParameter unitAmount = new DbmParameter("UnitAmount", 3);
///////////////////////////////Set a command ///////////////////////////////
string commandString = "Medication::Execute GetMedicationsList";
DbmCommand cmd = new DbmCommand(commandString);
cmd.CommandParameters.Add(PersonIdentity);
cmd.CommandParameters.Add(timeUnit);
cmd.CommandParameters.Add(unitAmount);
///////////////////////////////Execute Command /////////////////////////////
try
{
cmd.DbmConnection = conn;
DataSet ds = new DataSet();
// opening the connection
conn.Open();
ds = cmd.ExecuteDataSet();
// closing the connection
conn.Close();
ds.WriteXml(“output.xml"); //Save the output in an XML format
}
catch (Exception ex)
{
throw ex; // Catch and handle the exception here
}
}
}
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}


public class BasicStringTrie
extends java.lang.Object
Generally, a tries is used for membership query. say given N strings M and some query string t, we want to ask whether t_i exists in M. if the size of t is 1, then this problem is very trivial, simply travels all strings and perform match check.
However, things become complicated when there are many many querys, then each membership query would consume much time. There is a solution by using tries. Instead using array to save each string, we use an character tree to represent all strings, basically, for each string, the character in strings corresponds to a node in tries, for example, a string abac might like : a / b / a / c strings abac and abct looks like: a / b / \ a c / / c t so we can build a tries for the static string M. then for each membership query, it only needs to visit the tries and find whether a match exist. then there is no need to compare all strings each time. Actually, we can implement tries trivially by a trees, each node has a character and its 256 children (for ASCII), then a giving character match is O(1) and the time overhead of a simple query s would be 0(length(s))
Unfortunately, things become complicated again if M is very larger, then the space overhead of tries built by above strategy is very huge. For example, a character needs 1 byte plus 256 pointer, which is 1 byte + 256 * 4 byte about 1kB. The solution is compression.
1. we can use LinkedList instead of the pointer array with size 256. 2. path compression strategy, for example: Patricia tree.
| Constructor and Description |
|---|
BasicStringTrie()
construct a tries.
|
| Modifier and Type | Method and Description |
|---|---|
static BasicStringTrie |
buildTrie(java.lang.String[] ss)
build a tries using string arrays ss.
|
boolean |
contains(java.lang.String s) |
void |
insert(java.lang.String s)
insert a string s to this tries.
|
void |
remove(java.lang.String s)
remove a string s from this tries.
|
public static BasicStringTrie buildTrie(java.lang.String[] ss)
ss
- public boolean contains(java.lang.String s)
s
- public void insert(java.lang.String s)
s
- public void remove(java.lang.String s)
s
-


Across: 1. Produce switch? (4) 4. Racers hug crook for an additional fee (9) 10. Underground musical piece, first of tributes for 11 27 (11) 11. Important right: getting out of jail (3) 12. Borders on disorder to kiss trout (9) 13. Loose-limbed drunk fellow (5) 14. In nest, a kestrel placed lengths of wood (6) 15,24dn. May run for the roses, treating turkey neck by using tail of bud (8 5) 19. Small ply covering butt thinly (8) 21. Leviathan author mostly embracing left's restraint (6) 24. Some get a cuddle on return ... treasure! (5) 26. Lash mare, struggling ahead of fourth of geldings American pushed into group (9) 27. Socialist friends? Not odd at all! (3) 28. Fifteen shillings perhaps as won by 10 in 1973? (6 5) 29. Intriguing early sign for future track champions perhaps (9) 30. Dishes up some pasta easily (4) Down: 2. Product from milk of goat to circulate around (7) 3. 14 requiring peak fitness to take front of run without spasm (9) 4. If you can't do these, maybe you need a lift! (6) 5. Reins intially nearly dropped, and used awkwardly when available again (8) 6. Loathe travelling without a place to stay (5) 7. Colt in top of bracket one racking firsts up like a machine (7) 8. Bird with energy? 13 one missing! (5) 9. Calls for end for bridge partners (8) 16. Ooh! The cat went berserk - a canine issue perhaps? (9) 17. Spineless, sad, dingy lie (8) 18. Palimony arranged for Aphrodite perhaps? (8) 20. Pastoral bliss turning up, waylaid: a craggy part of Greece (7) 22. Smitten men bolt and run for the carnations in these 14 (7) 23. They work with bits slid back around both sides (6) 24. see 15 across 25. Some, they say, working at lot (5)


jQuery practice
button #1
button #2
button #3
button #4
First name
Last name
Hobby
Johnny
Ham
Swimming
Jack
Forest
Running


Home
About me
Projects
Services
Contact Me
HI, I'M CLARA
I am a software Engineer and I'm very passionate about education
technology and music


STUDENT REGISTRATION FORM
HOME
Profile
Please
SKILLS
Choose your option
Chandigrah
New Delhi
Mumbai
Kolkata
Bangalore
Pune
Hyderabad
Chennai
Ahmedabad
Visakhapatnam
Surat
Jaipur
Kanpur
Lucknow
Nagpur
Ghaziabad
Materialize Multiple Select
Specailization
FRESHER
Green
Brown
NEXT
send


We respond to the goals and aspirations of our clients, offer them our interpretations of style, history and local culture. All new concepts are introduced with a glance at latest technologies. We create the projects our clients can be proud of, because our team believes that architecture should elevate human experience.


Pizza Space
Size?
Small Pizza
Medium Pizza
Large Pizza
Toppings?
Pineapple
Eggplant
Tomato
Onion
Calculate Price


Greek Vocab Trainer
Select the correct translation from the opions below.
Use words from chapters up until...


http://www.pewinternet.org/2015/04/01/us-smartphone-use-in-2015/
healthfinder.gov homepage [png]
Homepage → Health Conditions and Diseases →
Cancer→ Take Steps to Prevent Skin Cancer
| Step 1 | Step 2 | Step 3 | Step 4 | Total | |
|---|---|---|---|---|---|
| Load time | 11.3s | 4.5s | 3.8s | 5s | 24.6s |
| Cost | $0.12 | $0.11 | $0.11 | $0.13 | $0.47 |
3G connection from Miami, FL
We often frame our considerations for non-desktop users around a concern of usability.
What about these constraints?
All of these constraints could be deal-breakers that prevent users from accessing our websites.
Deal-breakers = Usability Accessibility issues
Improving website performance can be a solution for both usability and accessibility on mobile devices.
Making the distinction between accessibility issues and usability issues could be the leverage needed to convince stakeholders that performance is important.
Coding and server setup basics....
healthfinder.gov — Slow 3G connection in Oregon [video]
healthypeople.gov — Fast 3G connection in Florida [video]
Slow down your internet connection
and emulate popular mobile devices
using Google Chrome
HTML is fast, right out of the box!
We add things (images, JavaScript, CSS) to HTML improve appearance and functionality. Those additions also decrease performance.
https://speakerdeck.com/katiekovalcin/the-path-to-performance
https://speakerdeck.com/katiekovalcin/the-path-to-performance
The way people access the sites we build has changed and so have the constraints that those users face.
By building performance into our process from the start, we can reach wider variety of users.
Framing performance as a valid accessibility issue could help to convince clients to dedicate time and resources to improving performance.
We can all use freely available tools to identify performance issues and be armed with compelling visual data for clients
Real performance data that compares speed before and after improvements can quantify the effort beyond users saying “This loads fast!”


Where the flavor inebriates you!
B PIZZERIA has been in business since 2000. Owner is a certified pizzaiolo of the Association of Africana Pizza-makers, and all of our pizzas are made according to Neapolitan tradition. We use only the highest-quality ingredients, including buffalo-milk mozzarella and tomatoes from our local shambas(garden)as well as our fresh, home-made mozzarella. All pizzas are drizzled with 100% Africana extra-virgin olive oil and then baked to perfection at 900 degrees in a Mario Acunto wood-fired brick oven.  Our distinctly Kenyan pizzas have been loved by the young, old and peckish for over 10 years.
With a huge and diverse menu there’s something for everyone so get your slice today.
We often have an experimental approach to pizza and yet most of our recipes have been with us since the beginning.


Biological Network Taxonomy
Pathways
- Metabolic
- Signaling
- Regulatory
- Disease
- Key distinctions:
- Pruned and curated
- Mechanistic and contextual details
Biological Network Taxonomy
Interactions
- Protein-Protein
- Protein-Ligand
- Domain-Domain
- Others
- Residue or atomic
- Cell-cell
- Epidemiology
- Social networks
Biological Network Taxonomy
Similarity
-
Protein/Sequence Similarity Networks (PSNs or SSNs)
- Chemical similarity
- Ligand similarity (SEA)
- Others
Biological Network Taxonomy
Pathways
- Metabolic
- Signaling
- Regulatory
- Disease
Networks
- Interaction
- Physical, Genetic, Social
- Similarity
- Structural, Sequence, Topical


Name: Nick Androiff Major: Chemical Engineering Year: Junior Fun Fact: Seized the Iron Throne and was not killed for it |
Name: Jonathan Baetz Major: Microbiology Year: Junior Fun Fact: Frequently fights with gravity, and has yet to win |
||
Name: Sedona Cady Major: Biomedical Engineering Year: Junior Fun Fact: Is a descendant of Cleopatra |
Name: Caitlyn Harrington Major: Chemical Engineering Year: Junior Fun Fact: Is scared of donuts |
||
Name: George Hoeferlin Major: Biomedical Engineering Year: Senior Fun Fact: Invented the fidget spinner |
Name: Gokul Muru Major: Chemical Engineering Year: Junior Fun Fact: Is an international champion in Irish dance |
||
Name: Audrey Major: Chemical Engineering Year: Junior Fun Fact: Believes we are in a virtual simulation run by aliens |
Name: E Hong Tiew (Ryan) Major: Mechanical Engineering Year: Senior Fun Fact: He thinks pineapples go well on pizza |
Name: Joshua Johnson Major: Biophysics Year: 4th year PhD Student Fun Fact: Parkour Enthusiast |
Name: Jenny Le Major: Biophysics Year: 5th year PhD Student Fun Fact: Traveled to the center of the earth to retrieve a pair of socks |
||
Name: Carlos Castro Major: Mechanical Engineering Year: 7th year professor Fun Fact: Cross Stitching Champion |


google.resumable_media.download module¶
Support for downloading media from Google APIs.
-
class
google.resumable_media.download.
ChunkedDownload
(media_url, chunk_size, stream, start=0, end=None, headers=None)¶ Bases:
google.resumable_media.download._DownloadBase
Download a resource in chunks from a Google API.
Parameters: - media_url (str) – The URL containing the media to be downloaded.
- chunk_size (int) – The number of bytes to be retrieved in each request.
- stream (IO[bytes]) – A write-able stream (i.e. file-like object) that will be used to concatenate chunks of the resource as they are downloaded.
- start (int) – The first byte in a range to be downloaded. If not
provided, defaults to
0
. - end (int) – The last byte in a range to be downloaded. If not provided, will download to the end of the media.
- headers (
Optional
[Mapping
[str
,str
] ]) – Extra headers that should be sent with each request, e.g. headers for data encryption key headers.
Raises: ValueError
– Ifstart
is negative.-
bytes_downloaded
¶ int – Number of bytes that have been downloaded.
-
chunk_size
= None¶ int – The number of bytes to be retrieved in each request.
-
consume_next_chunk
(transport)¶ Consume the next chunk of the resource to be downloaded.
Parameters: transport (object) – An object which can make authenticated requests. Returns: The HTTP response returned by transport
.Return type: object Raises: ValueError
– If the current download has finished.
-
finished
¶ bool – Flag indicating if the download has completed.
-
invalid
¶ bool – Indicates if the download is in an invalid state.
This will occur if a call to
consume_next_chunk()
fails.
-
class
google.resumable_media.download.
Download
(media_url, start=None, end=None, headers=None)¶ Bases:
google.resumable_media.download._DownloadBase
Helper to manage downloading a resource from a Google API.
“Slices” of the resource can be retrieved by specifying a range with
start
and / orend
. However, in typical usage, neitherstart
norend
is expected to be provided.Parameters: - media_url (str) – The URL containing the media to be downloaded.
- start (int) – The first byte in a range to be downloaded. If not
provided, but
end
is provided, will download from the beginning toend
of the media. - end (int) – The last byte in a range to be downloaded. If not
provided, but
start
is provided, will download from thestart
to the end of the media. - headers (
Optional
[Mapping
[str
,str
] ]) – Extra headers that should be sent with the request, e.g. headers for encrypted data.
-
consume
(transport)¶ Consume the resource to be downloaded.
Parameters: transport (object) – An object which can make authenticated requests. Returns: The HTTP response returned by transport
.Return type: object Raises: ValueError
– If the currentDownload
has already finished.
-
finished
¶ bool – Flag indicating if the download has completed.


run
reset
Ants
evaporation
%
Alpha
Update by quality
0
0
0
0
0
0
0
0
0
d = 0.5
d = 0.5
d = 1
d = 1
A
B
C
F
50%
50%
50%
50%


LEON MORIN, PRIEST (director: Jean-Pierre Melville; cast: Jean-Paul Belmondo (Leon Morin), Emmanuelle Riva (Barny), Irene Tunc (Christine Sangredin), Nicole Mirel (Sabine Levy), Marco Behar (Edelman), 1961-Fr.)
How many other directors could handle with great deftness the innuendoes of this potentially, sexually explosive relationship between an attractive and problematic widow with a young daughter (Emmanuelle) and a handsome 26-year-old priest (Belmondo), during the German Occupation of a small French town ? Melville establishes his exquisite control of the subject matter by allowing the story to unfold in such a perfect manner. I suspect, not many directors have that kind of grace and understanding of life... Melville's sense of how to tell a story has influenced many directors through his long career starting in the late 40s, and that list would include the great director, Bresson, who developed the same style and feel for filmmaking as Melville, who at times outdoes Melville's Melville, giving some the false impression that Melville imitated Bresson.
Melville's success comes through the intelligent use he makes of his eye for seeing what is spiritual and what is intelligent, and allowing it to be emotionally compelling. His characterization of the Occupation and how some survived it by becoming collaborators with the Germans, or by becoming part of the black market, or by becoming part of the Resistance Movement, is accomplished by relating the priest to all that goes on in town, and how the priest brings out his ideas of what God is and how tolerance is the message of all sane people, even as the horrors of what the Nazis stand for is glossed over in the background, its evil is still felt by those who must live under them; meanwhile, Melville is connecting the religious needs of the community and the deportation of the Jews, with the personal savior, Jesus Christ, who he reminds us, died as a Jew. The implication being, for those who think that because they are Christians, they don't have to be concerned about what is happening to the Jews, are sorely mistaken, because they have forgotten who Christ is and how he died for everyone and how if he was around today, he would be a Jew taken away to the death camps. The priest sees his task in life as a fulfillment of his Christian vows by helping those who need to be helped, no matter what they believe in. He appeals especially to the women in town, as a sort of modern day Christ, that results in some very complex emotional questions being raised, relating to mundane matters and affairs of the heart and spiritual quests.
Belmondo's performance as a priest who questions authority and is not afraid of what others might think is superb, as he attracts many women practitioners, especially, leaving himself vulnerable to public opinion when he openly maintains a very close relationship with the widow. His argument for a God couldn't be put forth with more verve and intelligence, even though it didn't convince me, as he was not challenged with counter arguments by any one in the film who had the ability to present a cogent differing opinion, nevertheless, this film moved me to further expand what I think... It even shows that it is possible to have a truly spiritual person be a part of the church, something that I have rarely come across outside the cinema.
REVIEWED ON 2/12/99 GRADE: A+
© ALL RIGHTS RESERVED DENNIS SCHWARTZ
Dennis Schwartz: Movie Reviews<EMAIL_ADDRESS>http:www.sover.net/~ozus
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


I'm an Experienced Backend Software Developer. Skilled in MySQL database and technologies C, PHP, C++, C#.Net, HTML, CSS, Java, Python. Experience of leading a team of professionals for small to medium sized projects. Highly interested in Automation frontier in software development. Strong information technology professional with a Bachelor Of Computer Application.
I'm an Experienced Software Developer. Skilled in MySQL database and technologies C, PHP, C++, C#.Net, HTML, CSS, Java, Python. Experience of leading a team of professionals for small to medium sized projects. Highly interested in Automation frontier in software development. Strong information technology professional with a Bachelor Of Computer Application.
I'm a web developer who loves to build website to solve other people's problems. Experienced Wed Developer. Skilled in MySQL database and technologies C, PHP, C++, C#.Net, HTML, CSS, Java, Python. Experience of leading a team of professionals for small to medium sized projects. Strong information technology professional with a Bachelor Of Computer Application.


{{db-hoax}}
{{Infobox radio station
| name = DXYP (96.3 Pokémon FM)
| image =
| city = [[General Santos|General Santos City]]
| area = [[South Cotabato]],[[Sarangani Province]],[[Davao del Sur]],[[Davao Occidental]],[[General Santos City]]
| branding = 96.3 Pokemon FM
| slogan = ''Pika!!''
| airdate = 2016
| frequency = 96.3 MHz
| format = [[Hot AC]],[[Talk radio|Talk]],[[Pokemon music]].
| power = N/A
| erp = N/A
| class = CDE
| owner = N/A
| callsign_meaning = '''DX'''
You'are destiny'''Y'''
'''P'''Pokemon
| website = [https://www.facebook.com/pokemonfmgensan . FB-FANPAGE]
}}
'''96.3 Pokemon FM''' is an [[FM broadcasting|FM]] radio station of Lagandary Broadcasting Network in the [[Philippines]]. The station's studio is located in Prk maunlad., Brgy. Apopong, [[General Santos]].
the radio song broadcast In the first few years, less than a quarter of the content on [[Pokémon]]-related, of Gensan mindanao philippines.
Internet radio station stationed in Madison, Wisconsin that broadcasts various audio content from the Pokémon franchise such as English,[[Japanese language|Japanese]],[[Cebuano language|Cebuano]],[[Indonesian language|Indonesian]] songs from the anime and movies as well as soundtrack from the video games. PIRN It also broadcasts Pokémon news, interviews, and TCG events.
but later a new feature called the Pokéblock was introduced, consisting of only Pokémon content. Eventually, the station made their programming strictly Pokémon-related content.
==Coverages==
* [[General Santos City]]
* [[South Cotabato]]
* [[Sarangani Province]]
* [[Davao Occidental]]
* [[Davao del Sur]]
{{General Santos Radio}}
{{Philippines-radio-station-stub}}
{{coord missing|Philippines}}
{{wikipedia-deleted|Pinas Central}}